IIA首页    新闻      案例      工业经理人
      产品         技术      专题      工程师社区
      学院         下载      视频      在线研讨会
现场层       传感器    现场仪表   工业安全
现场总线  工业以太网   工业无线  工业连接
机器视觉    测试测量   执行机构   电子元件
机器控制/过程控制     PLC    DCS
 控制系统  控制软件   HMI   运动控制
 嵌入式系统   工业机器人
优化/集成/管理
MES    PLM    工业数据中心
能效管理    设备管理与维护
可持续发展技术专题 2011汉诺威工业博览会回顾
 

问答

Q&A

VS2005中MessageBox出错
悬赏分:20 - 解决时间:2007-11-02 12:44:29
FILE *pFile=fopen("1.txt","r");
char ch[100];
memset(ch,0,100);
fread(ch,1,100,pFile);
fclose(pFile);
MessageBox((LPCTSTR)ch);
文件读取的是乱码,VS2005中出错【在VC6.0中MessageBox(ch)】;是正确的),MessageBox该如何写??
提问者:19lixiongwei - 试用期 一级
最佳答案
因为vs2005默认用的是unicode字符集,而vc6默认用的是ansi字符集,所以在vs2005中MessageBox对应的应该是MessageBoxW, 这个函数要求的是每个字符2字节的字符串。但是vc6中对应的是MessageBoxA,它要求的就是每个字符1字节的字符串,也就是char。 所以。。大概。。把MessageBox改成MessageBoxA就可以了吧(没试过……不一定得) 或者,读取的时候按照unicode的编码保存在内存中,然后调用MessageBox,不过这种方法比较复杂点。。。要去查点资料才好和你说。。我又有点懒。。就。。告诉你上面那种方法好了。。
回答者:因为vs2005默认用的是unicode -举人 五级 10-28 01:59:23
对最佳答案的评论:
评论字数200字以内

验证码: 看不清

 

搜企
首页 | 国际金属加工网 | 造车网 | 会员 | 主题信息 | 自动化问答 | 网站地图 | 免责声明 | 关于我们 | 主编信箱
北京市朝阳区东四环中路58号远洋国际中心C座2402室 电话: 010-65307950 传真: 010-65307859
Copyright ©1997-2012 IIA News.com & SooQ. All rights reserved.