Несколько версий ресурсов - PullRequest
       3

Несколько версий ресурсов

1 голос
/ 26 февраля 2011

Я пишу несколько библиотек C ++ внутри visual studio. Я знаю, что могу использовать Ресурс Версии, чтобы назначить DLL версии, имени продукта и т. Д., Но есть ли способ, которым я могу поменять различные сценарии Ресурса в зависимости от моих настроек конфигурации. Например, скажем, я компилирую для x86, я хочу, чтобы имя продукта было x86, также как для x64, я хочу, чтобы имя продукта было x64.

Ответы [ 2 ]

0 голосов
/ 01 августа 2016

скопировано с здесь

-

  1. Откройте ваш проект в Visual Studio

  2. Щелкните правой кнопкой мыши файл сценария ресурса (например, app.rc) и выберите «Свойства»

  3. В верхней части страницы свойств выберите одну платформу, например «Win32» или «x64».

  4. В левой панели меню выберите [Свойства конфигурации] / [Ресурсы] / [Общие].

  5. В поле «Определения препроцессора»добавьте «WIN32» для платформы «Win32» и «WIN64» для платформы «x64».Значение поля станет «WINXX; _UNICODE; UNICODE».(XX будет 32 или 64)

  6. Нажмите OK, чтобы закрыть окно.

  7. Щелкните правой кнопкой мыши файл сценария ресурса (например, app.rc) и выберите «Просмотр кода».

  8. В редакторе кода добавьте #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
--------------------------------
Сохраните файл сценария ресурса и скомпилируйте проект на разных платформах.
0 голосов
/ 26 февраля 2011

Вы можете использовать #ifdef s в файлах ресурсов. Но использование #ifdef s непосредственно в файлах ресурсов иногда может привести к ошибкам в редакторе ресурсов 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...