比如我想打开串口1,但串口1已经被别的程序打开,这时候,应该提示:该串口已被打开我想知道怎么才能知道这个串口已经打开
网上的程序是:
if( !m_ctrlComm.GetPortOpen())
m_ctrlComm.SetPortOpen(TRUE);//打开串口
else
AfxMessageBox("cannot open serial port");
但我试了一下,这样不行,这个GetPortOpen()返回BOOL类型的值,按照他的程序,当串口1已经打开时,应该返回1,但我试了一下,无论串口1是否打开了,都返回0,请问,我该怎么办(只用控件,API的不行)

解决方案 »

  1.   

    if( !m_ctrlComm.GetPortOpen())
    m_ctrlComm.SetPortOpen(TRUE);//打开串口
    else
    AfxMessageBox("cannot open serial port");
    是可以的,检查一下其它的地方
      

  2.   

    我实在不知道哪错了
    我建一个基于对话框的工程,然后添加comm控件,然后把控件拖到对话框上,为他赋个变量:m_Comm,然后,在对话框上加个按钮,给按钮添加函数:
    BOOL bCommState;
    m_Comm.SetCommPort(1);
    bCommState = m_Comm.GetPortOpen();做完后,打开串口调试工具,打开串口1,然后运行我的程序,显示bCommState = 0。