为什么只能打开1--9串口10以上都不能打开呢?
HANDLE m_CommH = CreateFile(“COM10”GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING, 0, NULL);
可是当串口编号大于10(确定存在,在硬件管理其中可以看到) 时就返回无效句柄
问题点数:30、回复次数:4Top
1 楼alexmayer(小豹)回复于 2006-03-21 09:35:57 得分 20
看看MSDN吧。
给你个例子
一个缺陷,前一段时间我在2000下用8串口卡发现第10个串口打不开,查了MSDN找到了原因,这里我做了修正。在NT/2000下 原来的代码打开编号10以上端口用 :
CreateFile(
"COM10",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, //重叠I/O
NULL
);
将提示错误,这样就OK: CreateFile(
"\\\\.\\COM10",//对应的就是\\.\COM10
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, //重叠I/O
NULL
);
Top
2 楼huguyue6670(美丽海洋)回复于 2006-03-21 09:44:56 得分 7
CreateFile(
"\\\\.\\COM10", GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, //重叠I/O
NULL
);
或是空间通讯不存在这个问题!!
Top
3 楼bobzhu2002()回复于 2006-03-21 10:01:48 得分 3
这个BUG是MFC的老问题了,有时没弄过还真一时搞不定该问题Top
4 楼wotur(熊)回复于 2006-03-27 11:31:21 得分 0
谢谢楼上的各位了!Top




