求助:关于vc6升级到VS2010后Unicode显示日韩越文问题

paul_hyg 2011-08-04 10:00:19
用VC6.0随便创建一个多文档工程,用VS2010打开后更改为“使用Unicode字符集”,在AboutBox对话框里加入一个“Static Text”和一个“Edit Control”控件,把“Static TextT”的Caption设置为越文“ÀI LIỆU”,运行显示为乱码,在“Edit Control”里输入越文可以正确显示。
但用VS2010直接创建一个MFC的多文档工程,“Static TextT”是能正确显示越文的。
因为有好多大的VC6.0的工程需要转换成VC2010,且要求能显示日韩越文,若用VS2010新建工程后在把VC6工程下地文件倒腾过去,那工作量太大太麻烦了。
望高手帮助,谢谢
...全文
615 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
paul_hyg 2011-08-04
  • 打赏
  • 举报
回复
搞定,谢谢jackyjkchen。
用“高级保存”把.rc文件保存为“Uncode - 代码页 1200”方式,则一切正常。VS2010的默认保存是不对的。
jackyjkchen 2011-08-04
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 paul_hyg 的回复:]

引用 7 楼 jackyjkchen 的回复:
VC80_UPGRADE=0X0600这个没事
rc文件用2010的文本编辑器打开,文件菜单里有个“高级保存选项”

我用VS2010直接打开".rc"文件,发现里面就是乱码,把越文粘贴上去,编译,提示Unicode编码保存,选择全部转换保存。出现编译错误:error RC2135:file not found:Visual 不知什么原……
[/Quote]
应该就是这个问题,编码乱掉了

VC6的rc文件能正常打开吧,找一个能转编码的文本编辑器,先转一下再升级工程
paul_hyg 2011-08-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jackyjkchen 的回复:]
VC80_UPGRADE=0X0600这个没事
rc文件用2010的文本编辑器打开,文件菜单里有个“高级保存选项”
[/Quote]
我用VS2010直接打开".rc"文件,发现里面就是乱码,把越文粘贴上去,编译,提示Unicode编码保存,选择全部转换保存。出现编译错误:error RC2135:file not found:Visual 不知什么原因
jackyjkchen 2011-08-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 paul_hyg 的回复:]

引用 4 楼 jackyjkchen 的回复:
VC6的mfc模板和VS2010不一样,你看下Static的属性,是否有区别,看下rc文件的编码,2010是utf16,6.0是gbk,都不一样

Static的属性一模一样,我细细比较了转换的和VS2010直接创建的两个工程的属性,发现基本相同,唯一不同的是:C/C++ -> 预处理器 -> 预处理器定义:继承的值:VC6转换的多了个“VC……
[/Quote]
VC80_UPGRADE=0X0600这个没事
rc文件用2010的文本编辑器打开,文件菜单里有个“高级保存选项”
paul_hyg 2011-08-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jackyjkchen 的回复:]
VC6的mfc模板和VS2010不一样,你看下Static的属性,是否有区别,看下rc文件的编码,2010是utf16,6.0是gbk,都不一样
[/Quote]
Static的属性一模一样,我细细比较了转换的和VS2010直接创建的两个工程的属性,发现基本相同,唯一不同的是:C/C++ -> 预处理器 -> 预处理器定义:继承的值:VC6转换的多了个“VC80_UPGRADE=0X0600”
在 资源 -> 预处理器:继承的值 也一样
请问怎么查看“rc文件的编码”?怎么修改?
jackyjkchen 2011-08-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 paul_hyg 的回复:]
这个问题简单描述就是:
用VC6.0创建的工程升级到VS2010后使用Unicode字符集,“Static TextT”不能正确显示日韩越文,而用VS2010直接创建的工程却完全没问题。
[/Quote]
显示乱码我觉得问题就在于VC6转2010的工程,unicode化不彻底,static控件还是ansi,在中文windows下ansi只能正常显示中英文

你现在这么简单的VC6程序都出了问题,大规模的VC6程序肯定有我1楼说的问题,尤其是CString强转,网上全是错误答案!VC6下99%的人写的是错的!
jackyjkchen 2011-08-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 paul_hyg 的回复:]
谢谢楼上的回复,我是用VC6.0随便创建一个多文档工程用来测试,没添加任何代码,只在对话框加了两个显示控件,所以不存在char等问题。
[/Quote]
VC6的mfc模板和VS2010不一样,你看下Static的属性,是否有区别,看下rc文件的编码,2010是utf16,6.0是gbk,都不一样
paul_hyg 2011-08-04
  • 打赏
  • 举报
回复
这个问题简单描述就是:
用VC6.0创建的工程升级到VS2010后使用Unicode字符集,“Static TextT”不能正确显示日韩越文,而用VS2010直接创建的工程却完全没问题。
paul_hyg 2011-08-04
  • 打赏
  • 举报
回复
谢谢楼上的回复,我是用VC6.0随便创建一个多文档工程用来测试,没添加任何代码,只在对话框加了两个显示控件,所以不存在char等问题。
jackyjkchen 2011-08-04
  • 打赏
  • 举报
回复
1.你相应的字库装了没有

2.用VC6写程序的人绝大多数没有注意Unicode兼容性的习惯,比如总是默认字符就是char,1字节,比如用LPCTR去强转CSring,代码肯定有问题!VC6项目的移植尽量不要用unicode

65,194

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧