急!!VS2008的MFC问题

我用VS2008编一个MFC程序,在设置向导中有一个默认选中的使用Unicode库,这时在窗口中输出汉字,输出的是乱码。反正进行输出汉字的操作都是乱码,这是怎么回事?而它... 我用VS2008编一个MFC程序,在设置向导中有一个默认选中的使用Unicode库,这时在窗口中输出汉字,输出的是乱码。反正进行输出汉字的操作都是乱码,这是怎么回事?而它菜单上的汉字有不是乱码。
如果取消使用Unicode库又不存在这个问题。我想在MFC程序使用Unicode库。
这个问题这么解决?高手回答。
应该不可能哟!
比如说这个函数就有问题.
AfxMessageBox((LPCTSTR)"汉字");
我在试验了一下显示英文也是乱码。
展开
 我来答
garymb
2009-10-24 · TA获得超过717个赞
知道小有建树答主
回答量:326
采纳率:100%
帮助的人:380万
展开全部
你要使用uncode的话,要保证你的程序里面的字符串是宽字符,也就是要经过宽字符的转换,(LPCTSTR)是什么?这是强制转换,并不对字符的实际类型进行转换,不是宽字符转换,比如你的AfxMessageBox((LPCTSTR)"汉字"); 要这么写
AfxMessageBox(L"汉字");或者AfxMessageBox(TEXT("汉字"));推荐后者,后面的表达形式无论是否使用UNICODED都能正常运行
楼主可以去头文件里面找一个L,_T,TEXT()三个宏定义的意义
威孚半导体技术
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层... 点击进入详情页
本回答由威孚半导体技术提供
老牛带你看奇闻
2009-10-24 · TA获得超过863个赞
知道小有建树答主
回答量:500
采纳率:0%
帮助的人:758万
展开全部
把你输出汉字的代码贴上来,应该是你用错东西了

你不能这样写,你要这样

AfxMessageBox(_T("汉字"));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5f707f9
2009-10-24 · TA获得超过311个赞
知道小有建树答主
回答量:514
采纳率:0%
帮助的人:588万
展开全部
你的代码写错了。

当你使用Unicode库时,所有的字符串都得这样写:
L"some string", 注意:前面的这个L必须要
或者 _T("some string")
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
etiu2009
2009-10-24 · TA获得超过968个赞
知道小有建树答主
回答量:481
采纳率:0%
帮助的人:495万
展开全部
你自己都说了选用 Unicode 字符集,却硬要给函数传递一个多字节字符集的字符串。编译都已经提示你不能把从 char[4] 隐式转换为 LPCTSTR 了吧?

"汉字" : 多字节字符集
L"汉字" : Unicode 字符集
_T("汉字") : 根据宏定义自动选择多字节字符集或 Unicode 字符集
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式