急!!VS2008的MFC问题
我用VS2008编一个MFC程序,在设置向导中有一个默认选中的使用Unicode库,这时在窗口中输出汉字,输出的是乱码。反正进行输出汉字的操作都是乱码,这是怎么回事?而它...
我用VS2008编一个MFC程序,在设置向导中有一个默认选中的使用Unicode库,这时在窗口中输出汉字,输出的是乱码。反正进行输出汉字的操作都是乱码,这是怎么回事?而它菜单上的汉字有不是乱码。
如果取消使用Unicode库又不存在这个问题。我想在MFC程序使用Unicode库。
这个问题这么解决?高手回答。
应该不可能哟!
比如说这个函数就有问题.
AfxMessageBox((LPCTSTR)"汉字");
我在试验了一下显示英文也是乱码。 展开
如果取消使用Unicode库又不存在这个问题。我想在MFC程序使用Unicode库。
这个问题这么解决?高手回答。
应该不可能哟!
比如说这个函数就有问题.
AfxMessageBox((LPCTSTR)"汉字");
我在试验了一下显示英文也是乱码。 展开
4个回答
展开全部
你要使用uncode的话,要保证你的程序里面的字符串是宽字符,也就是要经过宽字符的转换,(LPCTSTR)是什么?这是强制转换,并不对字符的实际类型进行转换,不是宽字符转换,比如你的AfxMessageBox((LPCTSTR)"汉字"); 要这么写
AfxMessageBox(L"汉字");或者AfxMessageBox(TEXT("汉字"));推荐后者,后面的表达形式无论是否使用UNICODED都能正常运行
楼主可以去头文件里面找一个L,_T,TEXT()三个宏定义的意义
AfxMessageBox(L"汉字");或者AfxMessageBox(TEXT("汉字"));推荐后者,后面的表达形式无论是否使用UNICODED都能正常运行
楼主可以去头文件里面找一个L,_T,TEXT()三个宏定义的意义
展开全部
把你输出汉字的代码贴上来,应该是你用错东西了
你不能这样写,你要这样
AfxMessageBox(_T("汉字"));
你不能这样写,你要这样
AfxMessageBox(_T("汉字"));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的代码写错了。
当你使用Unicode库时,所有的字符串都得这样写:
L"some string", 注意:前面的这个L必须要
或者 _T("some string")
当你使用Unicode库时,所有的字符串都得这样写:
L"some string", 注意:前面的这个L必须要
或者 _T("some string")
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你自己都说了选用 Unicode 字符集,却硬要给函数传递一个多字节字符集的字符串。编译都已经提示你不能把从 char[4] 隐式转换为 LPCTSTR 了吧?
"汉字" : 多字节字符集
L"汉字" : Unicode 字符集
_T("汉字") : 根据宏定义自动选择多字节字符集或 Unicode 字符集
"汉字" : 多字节字符集
L"汉字" : Unicode 字符集
_T("汉字") : 根据宏定义自动选择多字节字符集或 Unicode 字符集
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询