我在用MSCOMM控件作串口编程时遇到一些麻烦.
MSCOMM oncomm是事件驱动的.但与我想象中的等同于"中断"方式似乎有差别.比如我想
Main_Send(){
  //setoutput(...)   /*send to serial output*/  //我想在这儿等待检查由oncomm被触发后置的标志位然后对响应包作某些处理.
   while(TRUE){
     if (flag == 1)
         //do something needed
   }//但是这样好象程序就陷在这里,onComm得不到触发了.
}onComm(){
  flag = 1;
}
请问是否只能退出发送的主例程部分,然后onComm才能得到触发,必须在onComm中去处理才符合它的_这样一个_编程框架?甚至我发现我在两个分离的例程之间插入一个AfxMessageBox()对onComm事件的触发与否都具有举足轻重的作用:
定义:
  main_send(){
    send_to_port();
  }
  onComm(){
    flag = 1;
  }
  recv_process(){
    if(flag==1)
       //do something;
  }
使用:
  main_send();
  [AfxMessageBox("something");] //若选用,则onComm()被触发,
  recv_process();               //否则,flag未被置,好象onComm()未被触发.
是否这里的AfxMessageBox()对事件派发有什么影响而致?
请不吝赐教.