版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
使用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);