VC窗口程序中出现中文乱码的解决
用 VC6 的 MFC AppWizard 生成的窗口程序,窗口标题或者标签用中文,编译执行发现中文成乱码了,奇怪,以前怎么没有出现这种问题呢?
在网上找找资料才知道,原来我现在用的是非中文 XP 操作系统,在用向导生成窗口程序的过程中,没有中文语言的选项。不知道为什么,我的操作系统的区域都是设置成的中国,语言也是设成的简体中体,都没错的,VC6 安装程序看我的界面不是中文就不给我装上中文语言支持的动态库。
解决办法是:可以在 VC6 安装光盘中找到 APPWZCHS.DLL 文件(也点击 6.0.8168.0__APPWZCHS.zip 可从此处下载),拷入到 C:/Program Files/Microsoft Visual Studio/COMMON/MSDev98/Bin/IDE,确切位置视你的 Visual Studio 安装目录而定。这样重新用 MFC AppWizard 建一个工程,在第一步就可以选上简体中文了,在程序中的界面上写中文,然后执行就没问题了。
如果你的工程中的菜单、对话框、字符串等资源不是由AppWizard生成的,而是手工添加的,你必须保证该资源的Language选项为Chinese(P.R.C)
还有一个解决方案是:不需要 APPWZCHS.DLL文件,找到工程中的 rc 文件(资源文件),把其中LANGUAGE 9, 1的地方改为4,2;codepage(1252)改为codepage(936);另外把#include "afxres.rc" 改成#include "l.chs/afxres.rc";把"afxres.rc" 改成"l.chs//afxres.rc"即可,其中的数据根据不同文字代码可能不同,例子中的是英文,改为中文。
改 rc 文件的办法我试过,改过之后虽然执行时界面显示中文都没有问题,可是程序响应按钮操作的时候却出现了 Debug Assertion Failed! _CrtIsValidHeapPointer(pUserData)......非常致命的错误,可能这跟修改 rc 文件是无关的。
后来试了,的确,出现 _CrtIsValidHeapPoint 错误与修改 rc 文件无关,是因为 delete 一个指针时报的错,至今原因不明,因为同样的代码昨天还行,今天就不行了。随意猜测一下:是否有可能是昨天用的 Debug 出的 Dll 文件,今天用的 Release 出的 Dll 文件。
就我个人看来,第一种方法比较好,用 MFC AppWizard 生成的窗口像确定啊,取消等按钮或菜单都是中文的,不需要你一个个的改动。
相关推荐:
- [初中教育]婚姻家庭法学教学教案
- [初中教育]浅谈小学语文教学中的创新教育
- [初中教育]中华人民共和国侵权责任法2009
- [初中教育]2016-2022年中国薄膜太阳能电池行业发
- [初中教育]多级轻型井点降水的应用
- [初中教育]外语教学法流派介绍和简评
- [初中教育]实验一、典型环节及其阶跃响应
- [初中教育]内蒙古2012-2013学年度国家奖学金获奖
- [初中教育]移动通信营销渠道管理探讨
- [初中教育]初三化学第一学期第一第二章基础知识点
- [初中教育]一天的食物教学设计
- [初中教育]光导照明系统的基本结构及工作原理
- [初中教育]长春市十一高、东北师范大学附属中学、
- [初中教育]“十三五”规划重点-配重式装卸车项目
- [初中教育]领导方法和领导艺术
- [初中教育]第三章 植物病虫草鼠害诊断与防治基
- [初中教育]2019届九年级语文上册 第二单元 6纪念
- [初中教育]甲级单位编制水豆腐项目可行性报告(立
- [初中教育]Ch8-1补充 09101数据库系统原理及应用-
- [初中教育]2017-2023年中国吊装设备行业市场分析
- 制作毕业纪念册需要哪些材料
- 2015-2016学年高二化学苏教版选修4课件
- 哈佛管理导师-创建商业案例
- 职场交际中的谈吐礼仪知识与职场会议接
- 中国糕点及面包行业发展现状与竞争战略
- 沂河“12·7”洪水茶山拦河坝
- 管道水流量计算公式
- 4-2发电机火灾事故处置方案
- 数字信号处理实验五
- 2009年经济师(中级)金融专业知识全真试
- 历史街区保护规划--04历史文化遗产保护
- 宁夏回族自治区中小学职称评价标准
- 评先评优测评表
- 圆的切线证明及线段长求解在在中考中的
- 【解析版】2015年江苏省南京外国语学校
- 人教版八年级上册科学第一章习题精华
- 责任心与执行力
- SA8000社会责任管理体系标准培训
- IgA肾病的饮食应注意
- 杭州市建设工程文件归档整理方案(试行)




