Tom's Guide > Forum > Programmation > commande outp et inp sur devC++

commande outp et inp sur devC++

Forum Programmation : commande outp et inp sur devC++

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour, je suis débutant en programmation C++ et doit communiquer avec un capteur de température. J'utilise Win Xp.
Je possède un code un Turbo C que je dois utiliser en C++.
J'ai un problème avec les commandes outp et inp.
Impossible de compiler avec Dev C++.
J'ai essayé avec _outp et outport, mais rien de mieux.
Est-ce un problème de librairie ou quelque chose comme çà?
:-?

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Je viens d regarder dans les librairie par défaut et ça n'y est pas.
Par contre c'est une fonction qui se trouve dans mvcrt.dll

donc ajoute:

Code :
  1. #ifndef _MSC_VER
  2.     typedef int (*outp_t) (unsigned short port, int databyte);
  3.     typedef int (*inp_t) (unsigned short port);
  4.     outp_t _outp  = NULL;
  5.     inp_t _inp  = NULL;
  6.   int JeVeuxMonOutp(void)
  7.   {
  8.       HINSTANCE hInst = LoadLibrary("msvcrt.dll" );
  9.       if (!hInst)
  10.         return 0;
  11.       _outp = (outp_t) GetProcAddress(hInst, "_outp" );
  12.       if (!_outp)
  13.         return 0;
  14.       _inp = (inp_t) GetProcAddress(hInst, "_inp" );
  15.       if (!_inp)
  16.         return 0;
  17.       return 1;
  18.     }
  19. #else
  20.   #include <conio.h>
  21.   int JeVeuxMonOutp(void)
  22.   {
  23.       return 1;
  24.   }
  25. #endif



Et pense à appeler JeVeuxMonOutp(void) en début de programme :-)

Répondre à CRicky

merci CRicky, çà a l'air de marcher.
Par contre, vu que t'as lair de bien conaître mes genres de problèmes, tu n'aurais pas une solution pour la commande delay? Ca doit être le même problème. Merci d'avance :-)

Répondre à novice54

La commande delay ? c'est quoi ? _sleep () ?

Répondre à CRicky

La commande delay a peu près la même fonction que Sleep, elle permet d'avoir un temps d'attente. Mais pour delay, le temps est en millisecondes alors que pour Sleep (car sleep ne fonctionne pas), le temps d'attente.
Je crois que c'est la seule différence. Si ce n'est pas ça, merci de m'en dire plus.

Répondre à novice54

sleep est une fonction dépendante de l'OS, elle n'est pas dans la norm ANSI C (comme outp je uppose)
La fonction sleep de UNIX est en seconde, mais la foncciton Sleep de windows est en millisecondes (enfin je crois).

Sinon sous windows tu peut utiliser la fonction GetTickCount () qui te donne le nombre de millisecondes écoulées depuis l'execution de l'application:

Un sleep de 1000ms:

Code :
  1. DWORD ref = GetTickCount ();
  2. while ( GetTickCount () - ref < 1000 );



L'horloge windows n'est précise qu'à 10 millisecondes. Pour des timer plus précis, il y a QueryPerformanceCounter () qui utilise des entiers 64bits et est précis à 100 nanosecondes.

Répondre à CRicky
Tom's Guide > Forum > Programmation > commande outp et inp sur devC++
Aller à :

Il y a 2531 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens