使用8个控件来实现是可以的,但方法比较笨:需要在每个MSComm控件的事件中编写差不多相同的代码,缺少灵活机制。
其实既然你使用单个MSComm控件已经调通,那么可以考虑制作一个DLL或OCX,再在程序中根据需要动态增加。这样不管是8个串口还是N个串口,工作方式都一样。
注意:每个组件都运行在自己的线程中。

解决方案 »

  1.   

    你用控件 数组吧:
    '先 加载 MSCOMM(0)For I=1 To 7
        Load MSCOMM(I)
        ' MSCOMM(I) .....执行你的任务
    Next'Unload MSCOMM(I) 释放
      

  2.   

    请问如何使各个组件运行在自己的线程中,我是初学者,VB能不能做到?怎么做?
    我的要求是高效,稳定,实在不行我还只好用API轮巡,牺牲速度
    而所有的串口同时工作,数目是死的,不存在动态加载的问题
    请问我如何能截获来自串口的消息,能不能提供原码(我C 不太好,不要给我C代码或类似DLL的东东,我不太明白)
      

  3.   

    那你还是用8个MSComm控件好了。每个控件监控一个串口,肯定高效、稳定,而且是---它们都运行在自己的线程中,互不干扰。