本帖最后由 VisualEleven 于 2012-10-18 11:29:31 编辑

解决方案 »

  1.   

    你在线程函数中调用AfxGetMainWnd()返回的值是NULL吧
      

  2.   

    WaitCommEvent(((Cpc_pc_apiDlg*)AfxGetMainWnd())->hCom,&dwEvtMask,&tOverLaped);
    改为Cpc_pc_apiDlg * pDlg = (Cpc_pc_apiDlg*)pParam;
    WaitCommEvent(pDlg->hCom,&dwEvtMask,&tOverLaped);
      

  3.   


    ‡AfxGetMainWnd 返回 0x00000000 {CWnd hWnd=???} CWnd *HANDLE test=((Cpc_pc_apiDlg*)AfxGetMainWnd())->hCom; 能够得到啊 
      

  4.   


    按你的修改下 搞定了 
    但是为啥 
    是因为 AfxGetMainWnd 还没初始化完成导致的?
    pParam 这个参数啥含义
      

  5.   


    再问个问题 为啥  dwResult=WaitForSingleObject(tOverLaped.hEvent,100); 一直超时 能帮忙看下原因吗?现在程序的效果是点击“发送” 接收不到发送的字符,但是用串口小助手 打开com2,可以接收得到。(com1 和com2  是我用工具虚拟出来的)
      

  6.   

    WaitCommEvent(pDlg->hCom,&dwEvtMask,&tOverLaped); 还回值为0  查看错误为0x00000006 句柄无效。