多版本资源

时间:2011-02-26 18:50:17

标签: c++ visual-studio-2010

我在visual studio中编写了几个C ++库。我知道我可以使用版本资源来分配DLL的版本,产品名称等等,但有一种方法可以根据我的配置设置交换不同的资源脚本。例如,假设我正在为x86编译,我希望产品名称为x86,同样对于x64,我希望产品名称为x64。

2 个答案:

答案 0 :(得分:0)

您可以在资源文件中使用#ifdef。但是在资源文件中直接使用#ifdef,有时可以使用IDE的资源编辑器(在Visual Studio 2008中我已经发生过这种情况)。因此,我将创建两个资源文件(例如resource-x86.rc和resource-x64.rc)并将它们包含在主rc文件中,如下所示:

#ifdef X86
#include "resource-x86.rc"
#elif X64
#include "resource-x64.rc"
#else
#error Unsupported platform!
#endif

答案 1 :(得分:0)

here

复制

-

  1. 在Visual Studio中打开项目

  2. 右键单击资源脚本文件(例如app.rc)并选择"属性"

  3. 在属性页面的顶部,选择一个平台,例如" Win32"或" x64"。

  4. 在左侧菜单栏中,选择[配置属性] / [资源] / [常规]。

  5. 在"预处理器定义"字段,添加" WIN32" for" Win32"平台和" WIN64" for" x64"平台。字段值将变为" WINXX; _UNICODE; UNICODE"。 (XX将是32或64)

  6. 单击“确定”关闭窗口。

  7. 右键单击资源脚本文件(例如app.rc)并选择"查看代码"。

  8. 在代码编辑器中,添加#ifdef和#elif以在编译时有条件地包含资源。使用" WIN32"和" WIN64"我们刚刚定义的预处理器定义。

  9. 以下是示例代码:

    --------------------------------
    #ifdef WIN32
       IDB_BITMAP1             BITMAP                  "bitmap1.bmp"
       IDB_BITMAP2             BITMAP                  "bitmap2.bmp"
    #elif WIN64
       IDR_TOOLBAR1            BITMAP                  "toolbar1.bmp"
       IDI_ICON1               ICON                    "icon1.ico"
    #endif
    --------------------------------
    
    1. 保存资源脚本文件并在不同平台上编译项目。