热情软件屋

 

VC++编程出现中文乱码


编号:QA000031
建立日期: 1998年9月1日 最后修改日期:2003年7月6日
所属类别:

田雨:
    我是初学使用VC++5.0,使用 AppWizard 生成一个 SDI 工程,在编缉对话框时,在按钮、标签上输入汉字,但程序编译运行后显示出来的却是乱码,想请教一下如何解决?(我使用的是IBM的机器随机带的中文 WIN95 )

回答:

    这个问题是因为你的语言设置不正确。如果想在AppWizard生成的工程文件中使用中文,在第一步(图1),选择Chinese(P.R.C),如果你在语言列表中没有找到有关中文的选项,说明你的VC++的中文支持模块没有安装。此时,应退出VC++,在VC++的光盘的\DevStudio\SharedIDE\Bin\IDE目录下找到APPWZCHS.DLL文件,将其拷贝到硬盘的DevStudio\SharedIDE\Bin\IDE目录下即可,再启动VC++,就可以看到这一选项了。使用这一选项生成的工程文件中的所有资源都是中文的。VC++还提供了繁体中文(APPWZCHT.DLL)、日文(APPWZJPN.DLL)和韩文(APPWZKOR.DLL)的支持模块。
    
    

图1在MFC AppWizard的第1步中选择中文资源

    如果你的工程中的菜单、对话框、字符串等资源不是由AppWizard生成的,而是手工添加的,你必须保证该资源的Language选项为Chinese(P.R.C)。具体的做法是在资源列表中选择资源,然后在快捷菜单中选择Properties,在图2所示的对话框中设置Language下拉框。如果在Language中选择English,尽管在集成环境中可以正常显示中文,但编译后就变成了诸如"___.???"之类的乱码了。
    
    
图2 在资源属性对话框中设置Language选项

    
    goldtruth的意见:
    有一个解决方案不必从头作起:找到rc文件(资源文件),把其中LANGUAGE 9, 1的地方改为4,2;codepage(1252)改为codepage(936);另外把#include "afxres.rc" 改成#include "l.chs\afxres.rc";把"afxres.rc" 改成"l.chs\\afxres.rc"即可,其中的数据根据不同文字代码可能不同,例子中的是英文,改为中文。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio