关于虚拟串口删除问题

artsmart 2010-11-29 05:07:36
使用CloseHandle()函数关闭虚拟串口后,但是新设备插到机器上时,串口号却在加1,比如上一个设备为COM3,新插一个就变成COM4了。。明明已经关闭了,为什么还显示“使用中”。。
...全文
968 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhenli0322 2012-07-30
  • 打赏
  • 举报
回复
如何才能删除虚拟串口啊?我现在正在使用CommMonitor6.1串口监控精灵,打开端口却出现失效的端口号,我看了一下设备管理器,显示的是COM1-COM17一直都在使用中,如何才能清除啊?不然这个虚拟串口监控工具我就不能用啊,求解!
artsmart 2010-11-29
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ccrun 的回复:]
\\. 代表本机。
[/Quote]
知道咯, 谢谢了~
ccrun.com 2010-11-29
  • 打赏
  • 举报
回复
\\. 代表本机。
artsmart 2010-11-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ccrun 的回复:]
>>>串口号增加到十几的时候,软件就和硬件通不上了。

这是因为打开超过9的端口时,需要在前面加\\. 如下:

C/C++ code
// 打开端口12

#include <stdio.h>

int nCommPort = 12;
TCHAR szComPort[11] = { 0 };
_stprintf(szComPort, TEXT("\\\\.\\COM%……
[/Quote]
噢!原来是这样,怪不得以前看过程序有加\\. 不知道为什么。
这个"\\."代表什么意思的?
ccrun.com 2010-11-29
  • 打赏
  • 举报
回复
>>>串口号增加到十几的时候,软件就和硬件通不上了。

这是因为打开超过9的端口时,需要在前面加\\. 如下:
// 打开端口12

#include <stdio.h>

int nCommPort = 12;
TCHAR szComPort[11] = { 0 };
_stprintf(szComPort, TEXT("\\\\.\\COM%d"), nCommPort);

HANDEL hComm = ::CreateFile(szComPort,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL);

if (INVALID_HANDLE_VALUE == hComm)
return;

...
artsmart 2010-11-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lghndyz 的回复:]
重启电脑!!
[/Quote]
重启也没的用,还是没有去掉。有什么函数能完全卸载掉虚拟串口吗?我通过设备管理器查看隐藏设备,可以找到这些虚拟串口,手动可以卸掉。
artsmart 2010-11-29
  • 打赏
  • 举报
回复
但是不理会的话 有个问题。 串口号增加到十几的时候,软件就和硬件通不上了。WriteFile写不下去。但是用串口调试助手却可以。问题应该出在我的软件上,我串口不是用overlap方式打开的,因为下位机是USB转串口,串口设置函数对其也不起作用,就没有做多余的设置。对待这样的虚拟串口有什么要注意的吗?
ccrun.com 2010-11-29
  • 打赏
  • 举报
回复
[Quote=引用楼主 artsmart 的回复:]
使用CloseHandle()函数关闭虚拟串口后,但是新设备插到机器上时,串口号却在加1,比如上一个设备为COM3,新插一个就变成COM4了。。明明已经关闭了,为什么还显示“使用中”。。
[/Quote]

不必理会这个"使用中"的状态.
lghndyz 2010-11-29
  • 打赏
  • 举报
回复
重启电脑!!

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧