65.9K
CodeProject 正在变化。 阅读更多。
Home

将本地化应用构建为独立的可执行文件

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.50/5 (2投票s)

2002年7月27日

1分钟阅读

viewsIcon

50034

downloadIcon

614

如何为每个语言版本构建一个独立的执行文件。

Sample Image - BuildResSeparately.jpg

概述

Microsoft Visual Studio 6.0 仅提供一个框架,将所有资源构建到一个可执行文件中。 如果您希望将应用程序本地化为完全分离的文件,这可能会令人困扰。 幸运的是,VC++ 广泛的环境允许您通过几个步骤来实现这一点…

步骤

  1. 将默认的 Demo.rc 文件重命名为 Demo_EN.rc 或其他名称,具体取决于语言版本。
  2. 创建一个新的默认 Demo.rc 文件,其内容如下
    //Microsoft Developer Studio generated resource script.
    //
    #include "resource.h"
    
    #define APSTUDIO_READONLY_SYMBOLS
    ////////////////////////////////////////////////////////////
    //
    // Generated from the TEXTINCLUDE 2 resource.
    //
    #include "afxres.h"
    
    ////////////////////////////////////////////////////////////
    #undef APSTUDIO_READONLY_SYMBOLS
    
    #ifdef APSTUDIO_INVOKED
    ////////////////////////////////////////////////////////////
    //
    // TEXTINCLUDE
    //
    
    1 TEXTINCLUDE DISCARDABLE 
    BEGIN
    "resource.h\0"
    END
    
    2 TEXTINCLUDE DISCARDABLE 
    BEGIN
    "#include ""afxres.h""\r\n"
    "\0"
    END
    
    3 TEXTINCLUDE DISCARDABLE 
    BEGIN
    "#ifdef MYLANGUAGE_CZ\r\n"
    "#include ""Demo_CZ.rc""\r\n"
    "#endif\r\n"
    "\r\n"
    "#ifdef MYLANGUAGE_EN\r\n"
    "#include ""Demo_EN.rc""\r\n"
    "#endif\r\n"
    "\0"
    END
    
    #endif // APSTUDIO_INVOKED
    
    
    #ifndef APSTUDIO_INVOKED
    ////////////////////////////////////////////////////////////
    //
    // Generated from the TEXTINCLUDE 3 resource.
    //
    #ifdef MYLANGUAGE_CZ
    #include "Demo_CZ.rc"
    #endif
    
    #ifdef MYLANGUAGE_EN
    #include "Demo_EN.rc"
    #endif
    
    ////////////////////////////////////////////////////////////
    #endif // not APSTUDIO_INVOKED
  3. 将重命名为 Demo_EN.rc 的标准资源文件添加到项目中(菜单/项目/添加到项目/文件
  4. 转到 菜单/构建/配置 并添加适当的构建配置(添加... 例如 发布 英语,复制自:发布
  5. 转到 菜单/项目/设置,选择您新添加的 发布 英语配置
    • 切换到 常规 选项卡,更改中间文件和输出文件的位置 - 只需输入 发布
    • 切换到 链接 选项卡并将输出文件名更改为 发布/Demo_EN.exe
    • 切换到 资源 选项卡,资源文件名:发布/Demo_EN.res,预处理器定义:插入字符串 MYLANGUAGE_EN,将语言更改为 英语(如果未选中)
  6. 对您想要构建的每个语言版本重复步骤 3-5
  7. 对于每个新的语言版本,将这些行添加到 Demo.rc 文件中
    "#ifdef MYLANGUAGE_CZ\r\n"
    "#include ""Demo_CZ.rc""\r\n"
    "#endif\r\n"
    "\r\n"
    #ifdef MYLANGUAGE_CZ
    #include "Demo_CZ.rc"
    #endif

注意:对于 ATL 项目,您必须将 typelib 保留在 Demo.rc

1 TYPELIB "Demo.tlb"
© . All rights reserved.