我在做一个多串口同时收发信息的程序,是利用cserialport来做的,但该类具龚健伟老师的书里所讲如果应用于多串口操作时,是有问题的。在我的应用中果然出现问题,在多次开串口而后关串口后,程序就出现异常,而且出错极无规律,有时开关很多次都没事,有时开关一次就出错。这与龚老师在他的书中所说的现象完全一样。
报错为:
assertion failed!
program:...
file:...\\serialport.cpp
line:627
expression:m_hComm!=0
第627行如下:
void CSerialPort:WriteToPort(char *string,int n)
{
   assert(m_hComm!=0);
}
请问:这是如何造成的,有无更好的方法解决多串口同时收发的问题?

解决方案 »

  1.   

    简单,自己写一个串口通讯类,每个串口new个实例,有各自的缓冲区,肯定没有问题。题外话,现在还有多串口的应用吗?5、6年前我在DOS下倒是搞得不亦乐乎。
      

  2.   

    我没用serialport,自己写的,没这个问题。
      

  3.   

    我也没用过。用API最简练,也不算很复杂。
      

  4.   

    我开始也是自己用api写的,但后来我的应用需要三个串口才能够用,我嫌麻烦,就用它了,可惜有这麽个美中不足。
      

  5.   

    将那个serialport发给我,我看一下。
    [email protected]