com0com port virtuel pas trouvé
Je l'ai installé, apparemment avec succès, com0com v2.2.2.0 sur une machine Windows 7 64bit.
Je lance l'utilitaire de commande, comme ceci:
command> install PortName=COM9 PortName=COM8
CNCA0 PortName=COM9
CNCB0 PortName=COM8
ComDB: COM8 - logged as "in use"
ComDB: COM9 - logged as "in use"
command> busynames COM?*
COM3
COM4
COM5
COM6
COM8
COM9
COMPOSITEBATTERY
Remarque: connecté en tant que "utilisation" n'est PAS un message d'erreur?
Alors je tente d'ouvrir COM8 comme ce
m_hIDComDev = CreateFileA( szCodedPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL );
if( m_hIDComDev == NULL || m_hIDComDev == INVALID_HANDLE_VALUE ) {
wchar_t * lpMsgBuf;
DWORD dw = ::GetLastError();
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
dw,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0, NULL );
myErrorMsg = (char*)malloc( 200 );
sprintf(myErrorMsg,"Error creating connection %s ( %s ) %S",
szPort,szCodedPort,lpMsgBuf);
Cela échoue avec
Error creating connection COM8 ( COM8 ) The system cannot find the file specified.
J'ai essayé les deux "COM8" et "\\.\COM8"
.
Noter que l'exacte même appel à CreateFileA fonctionne parfaitement sur un "vrai" port COM.
Q: quelqu'un Peut me dire quel est le problème?
Un: Sur windows 7 64 bits, vous devez activer les tests de pilotes non signés.
-
Exécuter l'invite de commande en tant qu'administrateur. ( Il ne suffit pas seulement d'exécuter à partir d'un compte avec des privilèges d'administrateur. Voir ici pour plus de détails sur la façon de faire. )
-
Tapez la commande
bcdedit -set TESTSIGNING ON
-
redémarrage. ( Windows va mettre en place un "Mode test" note sur le bas à droite du bureau )
Pour Windows 8 cette méthode ne fonctionne pas de manière satisfaisante ou facilement. Voici certains de discussion des problèmes et des solutions.
Sinon, vous voudrez peut-être essayer un version signée - je n'ai PAS essayé moi-même.
COM8 - logged as "in use"
- qui est probablement votre problème.Reinhart Êtes-vous familier avec com0com? "L'utilisation d'un message, selon les indications dans la documentation, implique seulement que ces ports COM ont été affectés par la com0com pilote et ne seront donc pas être attribué de nouveau. Si le système d'exploitation pensé qu'ils étaient occupés, il me donnerait une autre erreur. Autant que je sache!
"En utilisation" est normalement un message d'erreur. De Nice sur l'open source, vous pouvez lire le code pour voir ce que c'est supposé vouloir dire.
Oui, j'ai utilisé com0com, mais a été accédant avec C#. Désolé je ne peux pas être de plus d'aide.
Passant OK, quelle est la cause de l'erreur?
OriginalL'auteur ravenspoint | 2012-01-07
Vous devez vous connecter pour publier un commentaire.
Voici mes points:
64-bit drivers
êtresigned
.com0com.sys
(64bit) est une simple unsigned pilote en mode noyau.SoftWx a écrit un intéressant tutoriel sur l'installation sur une version 64 bits de Windows 7 machine. Vous pouvez le récupérer ici.
Le seul problème avec cette solution est que Windows doit être en mode de test en vue pour le conducteur de travaux. Une fois que vous redémarrez, vous ne pourrez plus l'utiliser. Cette solution n'est pas permanent, et je ne veux pas laisser mon ordinateur dans le pilote d'essai en mode tout le temps (il pose un risque pour la sécurité).
OriginalL'auteur
Au cas où quelqu'un fait référence à cela, et s'intéressent à ce sujet, le 2.2.2.0 version de com0com est signé pour la version 64 bits de Windows. Cela supprime le besoin de sauter à travers les cerceaux de mettre Windows en mode "test".
La version 3.0.0.0 pas sur Windows 7 64 bits. 2.2.2.0 fonctionne parfaitement.
Il n'y a pas Changes.txt dans le 3.0.0.0 dossier sur le site de SourceForge. Personne ne sait ce qui a changé entre 2.2.2.0 et 3.0.0.0?
OriginalL'auteur