创建文件 COM 端口错误 2

CreateFile COM port error 2

我正在尝试打开并写入 Windows 7 上的 COM 串行端口,使用 Visual Studio 2012 (C++)

中的以下代码
printf("argv[2]= '%s'\n", argv[2]);

m_hCommPortSend= ::CreateFile(argv[2] ,GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);

if(m_hCommPortSend == INVALID_HANDLE_VALUE) 
{
    printf("%s error: %d\n", argv[2], GetLastError());
    return -1;
}

This Code works well with argv[2] as COM1 or COM7

我有另一个 com 端口 COM39,当我将 COM39 作为 argv[2] 传递时,它没有打开 GetLastError() 返回 2.

不知道为什么?

CreateFile 的 MSDN 页面在通信资源下说明如下:

要指定大于 9 的 COM 端口号,请使用以下语法:\.\COM10。此语法适用于允许指定 COM 端口号的所有端口号和硬件。