我在visual studio中编写了几个C ++库。我知道我可以使用版本资源来分配DLL的版本,产品名称等等,但有一种方法可以根据我的配置设置交换不同的资源脚本。例如,假设我正在为x86编译,我希望产品名称为x86,同样对于x64,我希望产品名称为x64。
答案 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
复制-
在Visual Studio中打开项目
右键单击资源脚本文件(例如app.rc)并选择"属性"
在属性页面的顶部,选择一个平台,例如" Win32"或" x64"。
在左侧菜单栏中,选择[配置属性] / [资源] / [常规]。
在"预处理器定义"字段,添加" WIN32" for" Win32"平台和" WIN64" for" x64"平台。字段值将变为" WINXX; _UNICODE; UNICODE"。 (XX将是32或64)
单击“确定”关闭窗口。
右键单击资源脚本文件(例如app.rc)并选择"查看代码"。
在代码编辑器中,添加#ifdef和#elif以在编译时有条件地包含资源。使用" WIN32"和" WIN64"我们刚刚定义的预处理器定义。
以下是示例代码:
--------------------------------
#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
--------------------------------