Tp-link Data/Voice/Fax Modem,VC6,winXP(win98)
以下的这段是从一本书的随书光盘拷同下的,在win98下可以运行,但在XP下无法运行
而光盘中内容虽然能够运行,却无法调试跟踪!//??????????? 问题1 ???
         DCB dcb; 
char strOutNumber[50]; 
DWORD dwBytesWritten;
BOOL bReturn,flagcom=FALSE,flagmodem=FALSE;
char strOutMsg[20]="ATS0=0V1M0\r";
hCommDev=CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,NULL);
if(hCommDev!=(HANDLE)-1)

flagcom=TRUE;
BuildCommDCB("COM1:115200,n,8,1",&dcb);//????? 问题2 ??????自已新建一个工程,在这儿时98下出错。
SetCommState(hCommDev,&dcb);   //以上为初始化串口 COMMTIMEOUTS CommTimeOuts;
CommTimeOuts.ReadIntervalTimeout=MAXDWORD;
CommTimeOuts.ReadTotalTimeoutMultiplier=0;
CommTimeOuts.ReadTotalTimeoutConstant=0;
CommTimeOuts.WriteTotalTimeoutMultiplier=0;
CommTimeOuts.WriteTotalTimeoutConstant=1000;
SetCommTimeouts(hCommDev,&CommTimeOuts);
PurgeComm(hCommDev,PURGE_TXCLEAR);
PurgeComm(hCommDev,PURGE_RXCLEAR); //设置读写串口超时时间 bReturn=WriteFile(hCommDev,strOutMsg,strlen(strOutMsg),&dwBytesWritten,NULL
if(!bReturn)
flagmodem=FALSE;);//???? 问题3 ????????自已新建一个工程,在这儿时 XP 下出错。 else 
flagmodem=TRUE;
} 问题1:随书光盘,F5运行时,提示:"\...\modem.exe" does not contain debugging information.
问题2:(自已建的另一个工程,手写代码抄的光盘,win98,vc6)F5运行时,提示:unhandled exception in vmodem.exe
问题3:(自已建的另一个工程,手写代码抄的光盘,winXP,vc6)F5运行时,提示:无。打开Modem连接时返回失败。

解决方案 »

  1.   

    hCommDev=CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,NULL);
    是重叠结构打开一个串口,而 writefile()的时候:
    bReturn=WriteFile(hCommDev,strOutMsg,strlen(strOutMsg),&dwBytesWritten,NULL);
    最后一个参数应该是指向一个重叠结构的指针;
      

  2.   

    1,Setting中设置产生调试信息 generate browse info,有可能为release版本,就需要在Link中选上Debug Info,Microsoft Format
      

  3.   

    两位的解答都是对的,,谢谢! gdy119(夜风微凉) :去掉后XP下可以运行了
    但原版没去掉,在98下为什么又可以运行?但还有一个问题无人问津啊,到时怎结贴啊
      

  4.   

    win98下,Setting->link:link incremently 的勾去掉
    就不会有你说的问题了,但我也不知道为什么。