C++ 为什么下面的代码在WindowsXP中工作,而不是在Windows7中工作?

C++ 为什么下面的代码在WindowsXP中工作,而不是在Windows7中工作?,c++,visual-studio-2008,windows-7,C++,Visual Studio 2008,Windows 7,我已经连接了一台USB打印机,我正在尝试使用CFile类的open方法打开该端口。 以下代码在Windows XP中正常工作,但在Windows 7中不工作: #include<stdio.h> #include<afx.h> void main() { CFile m_Port; CString PortName = "\\\\?\\usb#vid_0b0b&pid_106e#sx0000000-tc0000#{28d78fad-5a12-11d

我已经连接了一台USB打印机,我正在尝试使用CFile类的open方法打开该端口。 以下代码在Windows XP中正常工作,但在Windows 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);
}
在Windows XP中,它工作正常,但在Windows 7中,GetLastError返回值3。如何修复此代码以在Windows XP和Windows 7上工作?
让我知道他们在windows 7中是否有任何不同的GUID。在windows 7中,是否有其他选项可以使用设备路径打开端口?

这应该适用于windows 7,但您可能必须运行该应用程序。 我猜,路径是错误的,这就是错误3所说的。 打开设备管理器,在关联菜单中选择设备和属性。然后是详细信息和硬件ID。 您在这里找到代码示例中的路径了吗?如果没有,请相应地更改代码


另外:对于这种接近编程的系统,我将使用WIN-API中的::CreateFile,而不是CFile类。

3->系统无法找到指定的路径。我猜你在Windows7上遇到了安全问题。或者更确切地说,当你不能用你的电脑做你想做的事情时,你就实现了一个绝妙的想法:你是安全的,但是任何感兴趣的黑客都可以。另一种可能是您正在使用的UUID。或者一般的id:您确定它在Windows 7中是相同的吗?我的建议是:使用ProcessExplorer检查引擎盖下到底发生了什么。