J'ai connecté une imprimante USB, et j'essaie d'ouvrir ce port en utilisant Open
méthode de CFile
classe. Le code suivant fonctionne correctement sous Windows XP, mais il ne fonctionne pas dans Windows 7:Pourquoi le code suivant fonctionne-t-il sous Windows XP mais pas 7?
#include<stdio.h>
#include<afx.h>
void main()
{
CFile m_Port;
CString PortName = "\\\\?\\usb#vid_0b0b&pid_106e#sx0000000-tc0000#{28d78fad-5a12-11d1-ae5b-0000f803a8c2}";
int i;
i = m_Port.Open (PortName ,2,0);//PortName is DevicePath
if (i > 0)
printf("Done");
else
printf("Its not working");
i=GetLastError();
printf("\n\nError=%d",i);
}
Sous Windows XP, il fonctionne correctement, mais dans le cas de Windows 7, GetLastError
retourne une valeur de 3. Comment Je corrige ce code pour travailler sur Windows XP et Windows 7? Faites-moi savoir s'il existe des GUID différents dans Windows 7. Est-ce que leur autre option est d'ouvrir le port en utilisant le chemin de périphérique dans Windows 7?
3 -> "Le système ne trouve pas le chemin spécifié." Je suppose que vous rencontrez des problèmes de sécurité sur Windows 7. Ou plutôt, l'exécution de la brillante idée que vous êtes en sécurité lorsque vous ne pouvez pas faire ce que vous voulez avec votre PC, mais n'importe quel hacker intéressé peut. Une autre possibilité est l'UUID que vous utilisez. Ou l'identifiant en général: êtes-vous sûr qu'il en est de même dans Windows 7? –
Mon conseil: Vérifiez avec ProcessExplorer ce qui se passe exactement sous le capot. – Bahbar