CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

我是sxslyy请各位帮我,不然我会被炒。

楼主sxslyy(孤松傲雪)2002-03-24 15:53:05 在 VC/MFC / 基础类 提问

我有下面的程序接收串口来的信息,信息为:“v0600212c888你好888“  
  可如果这条信息是从windows中发出的就接收正常。可要是从dos下来的就  
  变成了“v0600212c888888“其中的汉字不能显示,求救!!!!!!!!  
  LRESULT   CTerminalView::OnCommNotify(WPARAM   wParam,LPARAM   lParam)  
  {  
          char   buf[MAXBLOCK/4];  
          CString   str;  
          int   nLength,nTextLength;  
          CTerminalDoc*   pDoc=GetDocument();  
          CEdit&   edit=GetEditCtrl();  
          if(!pDoc->m_bConnected||(wParam   &   EV_RXCHAR)!=EV_RXCHAR)  
          {  
                  SetEvent(pDoc->m_hPostMsgEvent);  
                  return   0L;  
          }  
          nLength=pDoc->ReadComm(buf,100);  
          if(nLength)  
          {  
                  nTextLength=edit.GetWindowTextLength();  
                  edit.SetSel(nTextLength,nTextLength);  
                  for(int   i=0;i<nLength;i++)  
                  {  
                          switch(buf[i])  
                          {  
                          case   '\r':  
                                  if(!pDoc->m_bNewLine)  
                                          break;  
                          case   '\n':  
                                  str+="\r\n";  
                                  break;  
                          case   '\b':  
                                  edit.SetSel(-1,0);  
                                  edit.ReplaceSel(str);  
                                  nTextLength=edit.GetWindowTextLength();  
                                  edit.SetSel(nTextLength-1,nTextLength);  
                                  edit.ReplaceSel("");  
                                  str="";  
                                  break;  
                          case   '\a':  
                                  MessageBeep((UINT)-1);  
                                  break;  
                          case   '\0x0E':  
                                  break;  
                          case   '\0x0F':  
                                  break;  
                          default:  
                                  str+=buf[i];  
                          }  
                  }  
                  edit.SetSel(-1,0);  
                  edit.ReplaceSel(str);  
          }  
          SetEvent(pDoc->m_hPostMsgEvent);  
          return   0L;  
  }    
  问题点数:20、回复次数:8Top

1 楼zjh()回复于 2002-03-24 16:26:54 得分 20

我想问一下,那几个case那里是做什么呢?  
   
  Top

2 楼sxslyy(孤松傲雪)回复于 2002-03-24 16:29:44 得分 0

是滤回车,换行,退格,响钤的Top

3 楼zjh()回复于 2002-03-24 16:41:30 得分 0

WIN和DOS下面的发送程序是同样的吗?  
  你能先确认DOS下时,发出来的字串是正确的吗?Top

4 楼sxslyy(孤松傲雪)回复于 2002-03-24 16:49:07 得分 0

dos   下发出的字串是正确的,因为它是一寻呼台的程序,  
  但WIN和DOS下面的发送程序是不同,win下的是我自己编的用它发我能接收正常  
  可我必须接收来自dos下的信息,能帮我吗?Top

5 楼zjh()回复于 2002-03-24 16:54:20 得分 0

你能否先把收到的字串用16进制全打出来,看看是否有那两个中文字符。  
   
  有QQ吗,或者我们直接用QQ讨论,应该比这个方便些。Top

6 楼sxslyy(孤松傲雪)回复于 2002-03-24 16:58:22 得分 0

31378606Top

7 楼sxslyy(孤松傲雪)回复于 2002-03-24 16:59:00 得分 0

能把你的qq给我吗?Top

8 楼zjh()回复于 2002-03-24 17:00:42 得分 0

42243797Top

相关问题

  • 请各位高手帮帮我了,不然我死定了.
  • 各位老大,大姐,救命啊help~!!!不然就真的失戀了
  • 几个小问题,急盼各位大虾解决,不然死定了~
  • 自编程序打包安装后,程序运行一段时间后,他会自动关掉,无任何错误提示!请各位大侠提供宝贵参考意见,不然老板炒我了!!!
  • 快帮忙解决打印问题啊,不然我要下岗了!!各位兄弟!!
  • 明天开始好好工作。不然要被炒了。 (送分)
  • 麻烦各位“有钱”的大侠们别再:“高兴!大家往我身上浇几盆水吧,不然我就兴奋过度了!”
  • =====这是个网络问题,请各位大哥帮帮小弟的忙,不然我又得下岗回家写程序了=====
  • 我的程序已完成了75%,请各位帮我解决剩下25%的问题。不然就卷铺盖走人了。
  • 中文全文检索,我试了好几天,头都大了,请各位大哥大虾快来帮忙,不然我会疯的!

关键词

  • 信息
  • ntextlength
  • setsel
  • pdoc
  • replacesel
  • edit
  • 接收
  • nlength
  • 程序
  • 发出

得分解答快速导航

  • 帖主:sxslyy
  • zjh

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo