求助:关于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工程下地文件倒腾过去,那工作量太大太麻烦了。
望高手帮助,谢谢
...全文
604 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
资源下载链接为: https://pan.quark.cn/s/3d8e22c21839 随着 Web UI 框架(如 EasyUI、JqueryUI、Ext、DWZ 等)的不断发展与成熟,系统界面的统一化设计逐渐成为可能,同时代码生成器也能够生成符合统一规范的界面。在这种背景下,“代码生成 + 手工合并”的半智能开发模式正逐渐成为新的开发趋势。通过代码生成器,单表数据模型以及一对多数据模型的增删改查功能可以被直接生成并投入使用,这能够有效节省大约 80% 的开发工作量,从而显著提升开发效率。 JEECG(J2EE Code Generation)是一款基于代码生成器的智能开发平台。它引领了一种全新的开发模式,即从在线编码(Online Coding)到代码生成器生成代码,再到手工合并(Merge)的智能开发流程。该平台能够帮助开发者解决 Java 项目中大约 90% 的重复性工作,让开发者可以将更多的精力集中在业务逻辑的实现上。它不仅能够快速提高开发效率,帮助公司节省大量的人力成本,同时也保持了开发的灵活性。 JEECG 的核心宗旨是:对于简单的功能,可以通过在线编码配置来实现;对于复杂的功能,则利用代码生成器生成代码后,再进行手工合并;对于复杂的流程业务,采用表单自定义的方式进行处理,而业务流程则通过工作流来实现,并且可以扩展出任务接口,供开发者编写具体的业务逻辑。通过这种方式,JEECG 实现了流程任务节点和任务接口的灵活配置,既保证了开发的高效性,又兼顾了项目的灵活性和可扩展性。

65,182

社区成员

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

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