директивы препроцессора (константы) для разных файлов в разных проектах - PullRequest
1 голос
/ 15 ноября 2011

Возможно ли иметь несколько констант директив препроцессора для разных файлов в разных проектах в Visual Studio 2010? Вот пример того, что я пытаюсь сделать:

В файле "1" в проекте "A" я определяю: TIMEDISPLAYING

 #define TIMEDISPLAYING

в файле "2" в проекте "B", который я проверяю на TIMEDISPLAYING:

 #if TIMEDISPLAYING
        //do something
 #else
        //do something else
 #endif

Я знаю, что в файле проекта я могу добавить свои собственные константы. Есть ли где-нибудь в файле решения, где я могу добавить что-то подобное? Или какой-то другой тип файла, который импортирует все мои пользовательские константы?

В настоящее время у меня есть логические константы, определенные в одном классе, но я бы хотел, чтобы мой код был скомпилирован на основе констант, а для меня недостаточно DEBUG. Моим следующим решением было бы просто добавить мои логические константы, если определен DEBUG:

 #if DEBUG
           protected const bool ISTIMEDISPLAYING = 1 == 1;

           protected const bool ISDATARANDOM = 1 == 0;

           protected const bool IS_AUTO_LOADING_CHAMP_VENDOR = 1 == 1;

           protected const bool IS_TESTING_PO = 1 == 0;
 #endif

Есть ли какое-нибудь альтернативное решение для моего последнего здесь? Любая помощь с благодарностью.

1 Ответ

2 голосов
/ 16 ноября 2011

Вы можете установить условные символы компиляции на вкладке «Построение» свойств вашего проекта в Visual Studio вместо их объявления в коде.Разным конфигурациям сборки могут быть назначены разные условные символы компиляции, и вы можете создать столько конфигураций сборки, сколько вам нужно.Вероятно, это проще в управлении, и вам не нужно беспокоиться о том, к какому исходному файлу их добавить, поскольку они хранятся в самом проекте.

Вы также можете найти атрибут Conditional полезно, если вы хотите включить или исключить целый метод на основе условного символа компиляции.

...