我在Visual Studio中编写了几个C++库。我知道我可以使用版本资源为DLL的版本,产品名称等等分配,但是有没有一种方法可以根据我的配置设置交换不同的资源脚本。例如,假设我正在为x86编译,我希望产品名称为x86,对于x64我同样希望产品名称为x64。多版本资源
Q
多版本资源
1
A
回答
0
您可以在资源文件中使用#ifdef
。但直接在资源文件中使用#ifdef
,有时可能会与IDE的资源编辑器一起使用(它在Visual Studio 2008中发生过)。因此,我将创建两个资源文件(例如资源x86.rc和资源x64.rc),并将它们包括在主RC文件是这样的:
#ifdef X86
#include "resource-x86.rc"
#elif X64
#include "resource-x64.rc"
#else
#error Unsupported platform!
#endif
0
从here
复制 -
在Visual Studio中打开项目
右键单击资源脚本文件(如app.rc),并选择 “属性”
在属性页的顶部,选择一个平台,如“Win32”或“x64”。
在左侧菜单栏中,选择[配置属性]/[资源]/[常规]。
在“预处理器定义”字段中,为“Win32”平台添加“WIN32”,为“x64”平台添加“WIN64”。字段值将变成“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
--------------------------------
- 保存资源脚本文件和编译在不同的平台上的项目。
相关问题
- 1. JSF资源版本
- 2. .NET中的版本资源#
- 3. 扩展页的资源在发布版本VS本地版本
- 4. 在厨师windows_package资源使用“版本”
- 5. CDN /子域,资源和版本
- 6. REST API中的版本控制资源
- 7. android版本,保护数据资源
- 8. perl版本特定的语法资源
- 9. 在调试版本中包含资源
- 10. 资源文件的版本控制
- 11. 替换版本信息资源
- 12. 多个资源
- 13. 有条件的资源包含/排除Android版apk版本
- 14. TFS源代码资源管理器:浏览特定版本
- 15. 单个资源和多个资源
- 16. 的Maven - Maven的远程资源 - 插件 - 资源最终会在最终版本
- 17. REST API版本化(仅版本表示,而不是资源本身)
- 18. Maven的版本,颠覆分支机构和本地资源库
- 19. Angularjs $资源多POST
- 20. 多资源字典
- 21. 从调试版本更改为发布版本时'找不到资源'异常
- 22. 在新的BlackBerry应用程序版本上替换资源文件版本
- 23. HtmlEncode本地资源
- 24. 资源本地化
- 25. App Store - 具有多种资源的应用程序的“每种语言”版本
- 26. 源版本优于二进制版本?
- 27. 资源MSProject外接程序:服务器相关的资源添加到项目的本地版本
- 28. Symfony2:资产版本与资产
- 29. 资源与资源
- 30. Concourse github-release资源找不到旧版本或标签
我们对产品名称等使用#define,它对我们来说工作正常。当然,我们不会在配置之间更改这些设置,但我不明白为什么不能。 – Luke 2011-02-27 02:18:00
我最终用#ifdefs修改了RC。由于该文件不会经常更改,我认为这是一个更简单的解决方案。 Visual Studio似乎没有抱怨。显然,我必须做的一件事是将预处理器定义添加到项目属性的资源部分,然后一切正常。 – Dave 2011-02-27 11:34:06