в зависимости от параметра компиляции (значения COMPILE_A
или COMPILE_B
), который задан в виде переменной envorinment, я хочу скомпилировать свое приложение с различными настройками, такими как имя приложения и заставка.
Я получил это далеко:
В «Project / Settings / C / C ++ / Определения препроцессора» я добавил $(COMPILESWITCH)
(в результате опция командной строки /D "$(COMPILESWITCH)"
).
В stdafx.h я могу использовать следующий код, что означает, что я правильно определил определение препроцессора через параметр командной строки:
#if defined COMPILE_A
# define IDB_SPLASH IDB_SPLASH_A
# elif defined COMPILE_B
# define IDB_SPLASH IDB_SPLASH_B
# else
# error Unknown or undefined target compile switch; cannot compile!
# endif
Но я заметил свойство «Condition» в «ResourceView / [правый клик] / Свойства» ...
Текст справки гласит:
Состояние
Определяет включение
ресурс. Например, если
условие _DEBUG, этот ресурс
будет включен только в отладке
строит.
Это похоже на элегантный способ сделать это, верно?
Указывая _DEBUG
как условие работает. Так как _DEBUG
указано через /D _DEBUG
, мой $(COMPILESWITCH)
также должен работать, верно?
По какой-то причине это не так; почему?
Или есть даже другой, лучший способ добиться того, чего я хочу?