CreateFile et port COM supérieur à 9 [Résolu]

Signaler
Messages postés
28
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
16 mars 2007
-
Messages postés
5
Date d'inscription
mardi 8 février 2005
Statut
Membre
Dernière intervention
27 mars 2009
-
Bonjour,
J'ai une dll qui s'occupe de la connexion avec des périphériques branchés sur le port série.
J'utilise La fonction CreateFile pour ouvrir un port COM disponible.

J'ai fait un test en changeant le numéro de port et dès que je passe au dessus de 9, impossible d'ouvrir le port.
GetLastError() me retourne l'erreur 2.

Est-ce une limitation de la fonction?
Si possibilité, comment la contourner?

ps : actuellement, je ne suis pas bloqué mais sur une machine de test je pense que je le serais (entre les convertisseur USB->Série et ip->Série, ca va dépasser la dizaine.)

3 réponses

Messages postés
1
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
25 juillet 2005
1
Bonjour, j'ai eu le même problème que toi avec des COM virtuels. Pour résoudre le problème des numéros trop grands, lorsque tu fais le CreateFile("COMx",GENERIC_READ|GENERIC_WRITE,0,NULL,
OPEN_EXISTING,0,NULL);
au lieu de passer en premier argument une chaine de caractère avec seulement COMx avec x num de com, tu passes [file://./COMx \\.\COMx] qui va te permettre d'ouvrir n'importe quel port.

Ex:
comdev=CreateFile("\\\\.\\COM60",GENERIC_READ|GENERIC_WRITE,0,NULL,
OPEN_EXISTING,0,NULL);

Bonne continuation.
Messages postés
28
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
16 mars 2007

Merci beaucoup,
J'essayerai ca très bientot.
Messages postés
5
Date d'inscription
mardi 8 février 2005
Statut
Membre
Dernière intervention
27 mars 2009

Bravo, j'avais le meme probleme et je l'ai resolu en utilisant cette sequence \\.\
Ce n'est pas [file://./ \\.\]
Je n'ai pas compris de ou vient ce [file://./ \\.\]
Pourquoi une telle sequence? De ou vient ce protocole?

Bonne journee et encore braqvo et merci.