使用vsdp虚拟的com软件,可以模拟com接口,但程序调试时发现,使用CreateFile()打开虚拟的COM时总是失败,使用一些超级终端类软件,亦是如此。后来在设备管理器中查看后,vsdp确实是在驱动层模拟了com接口,但为什么失败呢?
Win32 API函数CreateFile()除了可打开普通文件外,还可以打开设备,比如可用于打开串口,获得串口句柄。
使用CreateFile()函数打开存在的com口时,此时的com口驱动程序,解析了“COM1”,但由vspd驱动创建的虚拟com,打开时,没有解析"COM1",这是由于vsdp驱动符号连接设置的问题。使用"\\\\.\\COM1"方式,即可正常打开有vspd虚拟的com接口。
正确的打开方式如下:
HANDLE hComm = CreateFile("\\\\.\\COM1",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
0);