2579|2

60

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

串口ReadPortThread读到数据后,怎样正确显示出来? [复制链接]

DWORD WINAPI ReadPortThread(LPVOID lpvoid)
{
BYTE Byte;
    DWORD dwCommModemStatus,
        dwBytesTransferred;
    CString tempStr;

    // Specify a set of events to be monitored for the port.
    SetCommMask (hPort, EV_RXCHAR);

WaitCommEvent (hPort, &dwCommModemStatus, 0);
if (dwCommModemStatus & EV_RXCHAR)
{
DWORD length=0;
    COMSTAT ComStat;
    DWORD dwErrorFlags;
    char *buf=NULL;
    ClearCommError(hPort,&dwErrorFlags,&ComStat);
    length=ComStat.cbInQue;
    ReadFile(hPort,buf,length,&length,NULL);

    CString temp=buf;
    MessageBox(NULL,temp,TEXT("Result"),MB_OK);
}

    // Retrieve modem control-register values.
    GetCommModemStatus (hPort, &dwCommModemStatus);   
}
则消息框里为空。
在下查到些方案,如
if(dwLength>0)

                     {

                            //从串口读取数据

                            TCHAR* buf=new TCHAR[256];

                            fReadState=ReadFile(hPort,buf,dwLength,&dwLength,NULL);
                            if(!fReadState)
                            {
                                   //不能从串口读取数据
                                   MessageBox(NULL,TEXT("Error in read from serial port"),TEXT("Read Error"),MB_OK);
                            }
                            else
                           {
                                  //把数据赋值给全局变量
                                   strInChar=buf;
                            }
                           delete[] buf;
                     }
问题抖出在类型转化、缓冲区之间数据拷贝的问题,不知道怎样解决。    各位帮帮忙看看。

最新回复

读出一串char,然后用mbstowcs转成WCHAR,就可以显示出来了 PDA用的是宽字符  详情 回复 发表于 2007-6-8 15:35
点赞 关注

回复
举报

60

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
好像有类型转换函数,具体是什么忘了,自己看看书找找
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
读出一串char,然后用mbstowcs转成WCHAR,就可以显示出来了
PDA用的是宽字符
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表