在VC6中实现多语言支持

王朝vc·作者佚名  2006-01-30
窄屏简体版  字體: |||超大  

在VC6中实现多语言支持

张志刚 2004年6月30日

随着计算机在各种行业的普及,以及我国软件行业的发展,国产软件在不断的走出国门,所以各种软件的多语言支持也被越来越多的程序员所关注。对于一个软件程序为了支持不同语言,而创建不同的源程序显然不是一个很好的方法。本文主要介绍如何在VC6环境下通过创建支持多语言的资源文件来实现多语言支持。

首先创建一个支持简体中文的工程项目Test,对该工程中的所有资源项使用 Insert Copy命令创建支持英文的资源项;

打开该工程的.rc文件,将该文件中的3 TEXTINCLUDE DISCARDABLE部分改写为:

3 TEXTINCLUDE DISCARDABLE

BEGIN

"#define _AFX_NO_SPLITTER_RESOURCES\r\n"

"#define _AFX_NO_OLE_RESOURCES\r\n"

"#define _AFX_NO_TRACKER_RESOURCES\r\n"

"#define _AFX_NO_PROPERTY_RESOURCES\r\n"

"\r\n"

"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)\r\n"

"#ifdef _WIN32\r\n"

"LANGUAGE 4, 2\r\n"

"#pragma code_page(936)\r\n"

"#endif //_WIN32\r\n"

"#include ""res\\Test.rc2"" // non-Microsoft Visual C++ edited resources\r\n"

"#include ""l.chs\\afxres.rc"" // Standard components\r\n"

"#endif\r\n"

"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"

"#ifdef _WIN32\r\n"

"LANGUAGE 9, 1\r\n"

"#pragma code_page(1252)\r\n"

"#endif //_WIN32\r\n"

"#include ""res\\ Test .rc2"" // non-Microsoft Visual C++ edited resources\r\n"

"#include ""afxres.rc"" // Standard components\r\n"

"#endif\r\n"

"\0"

END

将该文件末尾的Generated from the TEXTINCLUDE 3 resource.部分改写为:

#define _AFX_NO_SPLITTER_RESOURCES

#define _AFX_NO_OLE_RESOURCES

#define _AFX_NO_TRACKER_RESOURCES

#define _AFX_NO_PROPERTY_RESOURCES

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)

#ifdef _WIN32

LANGUAGE 4, 2

#pragma code_page(936)

#endif //_WIN32

#include "res\PhTools.rc2" // non-Microsoft Visual C++ edited resources

#include "l.chs\afxres.rc" // Standard components

#endif

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)

#ifdef _WIN32

LANGUAGE 9, 1

#pragma code_page(1252)

#endif //_WIN32

#include "res\PhTools.rc2" // non-Microsoft Visual C++ edited resources

#include "afxres.rc" // Standard components

#endif

这样该工程项目的资源就可以支持中文和英文了。从Project菜单选择Setting…选项,打开Project Settings对话框,选择Resources 选项卡,在“Preprocessor definitions”追加“, AFX_TARG_ENU,AFX_RESOURCE_DLL”,对工程进行编译就可生成支持英文的程序,如果不加入“, AFX_TARG_ENU,AFX_RESOURCE_DLL”,对工程进行编译可生成支持中文的程序。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航