深入Windows通信编程(2)
作者:佚名; 更新时间:2014-12-05
dow();
InitCom();
}
BOOL TCommWin::WMCommNotify(TMessage &Mg)
{
UINT flag=0;
int id;
COMSTAT stat;
unsigned char SendChar;
static unsigned char
*p=ReceiveBuff;
static num=0;
int ret;
id=Mg.WParam;
switch(Mg.LP.Lo)
{
case CN_EVENT://有事件掩码中定义的事件发生
flag=GetCommEventMask(id,EV_BREAK);
if(flag & EV_BREAK)
FlushComm(id,1);
flag=GetCommEventMask(id,EV_RXFLAG);
if(flag & EV_ERR)
FlushComm(id,1);
flag=GetCommEventMask(id,EV_RXFLAG);
if(flag & EV_RXFLAG)//收到了事件字符0xff
{
SendChar=0x0f;
WriteComm(id,& SendChar,1);//向对方回0x0f
}
break;
case CN_RECEIVE://接收到了规定个字符或超时
do
{
ret=ReadComm(id,p,1);
if(ret>0)
{
p++;
num++;
}
}while((ret>0)&(num<10));
if(num>=10)//接收完一条消息
{
num=0;
//此处处理接收到的消息
p=ReceiveBuff;
SendChar=0x0f;
WriteComm(id,& SendChar,1);//向对方回0x0f
FlushComm(id,1);
}break;
}
flag=GetCommError(id,&stat);//消除错误(若有)
return 1;
}
void TCommApp::InitMainWindow()
{
MainWindow=new TCommWin(NULL, "Windows通信示例");
}
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevI
nstance,LPSTR 1pCmdLine,
int nCmdShow)
{
TCommApp CommApp("通信", hInstance,hPrevInstance,1pC
mdLine, nCmdShow);
CommApp.Run();
return CommApp.Status;
},信捷职称论文写作发表网
核心期刊快速发表
Copyright@2000-2030 论文期刊网 Corporation All Rights Reserved.
《中华人民共和国信息产业部》备案号:ICP备07016076号;《公安部》备案号:33010402003207
本网站专业、正规提供职称论文发表和写作指导服务,并收录了海量免费论文和数百个经国家新闻出版总署审批过的具有国内统一CN刊号与国际标准ISSN刊号的合作期刊,供诸位正确选择和阅读参考,免费论文版权归原作者所有,谨防侵权。联系邮箱:256081@163.com