C++ CreateFile COM端口错误2

C++ CreateFile COM端口错误2,c++,serial-port,C++,Serial Port,我正在尝试在Windows7上打开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

我正在尝试在Windows7上打开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;
}
此代码与argv[2]作为COM1或COM7很好地配合使用

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


不确定原因?

CreateFile的MSDN页面在“通信资源”下显示以下内容:


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

CreateFile的MSDN页面在“通信资源”下显示以下内容:

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