打开COM1到COM9用:

m_hCom = CreateFile(_T("COM1:"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, NULL, NULL);

或者

m_hCom = CreateFile(_T("COM1"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, NULL, NULL);

(第一个参数有没有分号都可以)

 

或者

m_hCom = CreateFile(_T("////.//COM1"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, NULL, NULL);

(COM1后面不能有分号)

 

打开COM10之后的串口

m_hCom = CreateFile(_T("////.//COM15"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, NULL, NULL);

 

 

在网上查到:

    "COMX:",
    "/$device/COMX",
    "/$bus/PCMCIA_0_0_0"。
 其中第一种方式只适合从0~9的设备名,亦即COM10:中10超出了设备命名规范,所以用CreateFile打开设备失败。
 使用第二种方式/$device/COM10,作为参数传递给CreateFile,成功打开COM口,通讯正常,搞定。
 第三种是用在总线驱动上的,暂时没涉及到

 

第二种方法试了好多编,还是没打开。

 

以上结果只在XP平台下测试,串口15为USB转串口 VS使用Unicode编码