我试图通过 USB 端口(名为 COM15)进行一些串行通信,但出现错误。这是发生错误的代码:
HANDLE myPortHandle = CreateFile("COM15",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL);
if (myPortHandle == INVALID_HANDLE_VALUE)
{
DWORD lastError = GetLastError();
cout<<"ERROR HERE! = "<<lastError<<endl;
}
每次编译程序时,打开的串行端口的句柄== INVALID_HANDLE_VALUE。我在 CreateFile() msdn 文档中阅读了如何使用 GetLastError() 来获取“扩展错误信息”。现在...当我运行代码时,GetLastError() 返回值:2
在 GetLastError() 的 msdn 文档中,它说:
“设置最后一个错误代码的每个函数的文档的返回值部分注明了该函数设置最后一个错误代码的条件。”
我尝试在 CreateFile() msdn 文档的返回值部分中查找“2”的含义,但在任何地方都找不到其含义。
问题:
1)为什么会发生这种情况:myPortHandle == INVALID_HANDLE_VALUE?
2)另外,如果有人可以指导我在 msdn 文档中查找 GetLastError() 返回的“2”的含义,那就太棒了!