在 VC 下,如何用 MSComm 控件 打开 16以上的com 口号?

来源:百度知道 编辑:UC知道 时间:2024/05/27 17:54:50
如题:
在 VC 下,如何用 MSComm 控件 打开 16以上的com 口号,我用的是多串口模拟卡,电脑上有com1——com66 的串口。
顺便问个问题,我看了很多其他人的程序,一般都是
if(m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(FALSE);
m_ctrlComm.SetCommPort(1); //选择com1
……
有点不是太理解。
为什么没有选择端口号前,就要先关闭端口?
关闭的端口是所有串行端口呢还是哪一个端口?(比如我电脑上有多个串口的情况下)

安我个人的想法,为什么不是
m_ctrlComm.SetCommPort(1); //选择com1
if(m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(FALSE);
……

即先选这端口号,然后关闭端口?

期待答案!

我的理解:
1、MSComm 控件时针对大多数情况下的应用
实际上,大多数情况下16个 甚至更少的串口足以解决 问题。
如果遇到 超过 16个以上的 串口,那么开发者 得用API 写适合自己的控件。

2、觉得你说的也有道理,或许 是你 看的 例程 如此。
还有 别的 例程 和你的写法 一样

看过 龚建伟 的 程序 吧?

Good luck

谢谢 : 萍水e相逢

关于第二点
我的确看过龚建伟 的程序 :)
但至少看过其他5个相关的代码,也不知道是不是都是彼此仿照还是确需如此,看到的都是
if(m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(FALSE);
m_ctrlComm.SetCommPort(1); //选择com1

这样子的类型。还没看到过跟我想的一样的例程,故有此问。

关于第一点:
早期我是用 WINAPI232 编写的,可是不知道怎么使用事件驱动的方法,只能创建线程不停的轮巡有没有数据到达,这样创建60多个线程,程序好像有些不稳定,无奈下才想用控件的~`