我在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