Как настроить Visual Studio для регистрации некоторых #defines по всему миру? - PullRequest
37 голосов
/ 24 февраля 2011

Я имею в виду, что в каждый из моих исходных файлов я должен вставить #define NOGDI, чтобы остановить windows.h от включения определений GDI (поскольку это определение BITMAP конфликтует с моим).

например

#define NOGDI
#include <windows.h>

К сожалению, я должен делать это в каждом отдельном исходном файле, который включает в себя windows.h, что я не хочу делать.Я использую Visual Studio 2005, есть ли способ установить #define что-то глобально?(т.е. во всех исходных файлах).

Ответы [ 3 ]

68 голосов
/ 24 февраля 2011

Настройки проекта -> C / C ++ -> Препроцессор -> Определения препроцессора

Здесь вы можете определить символы, которые применяются глобально ко всему исходному коду вашего проекта.

3 голосов
/ 11 февраля 2014

Я установил необходимое определение для всего проекта, как описано в разделе «Параметры проекта» -> C / C ++ -> «Препроцессор» -> «Определения препроцессора»

Но, тем не менее, это не сработало!

В конце концов оказалось, что проблема была в установленном флажке NoInherit, «Наследовать от родительских или проектных значений по умолчанию»

In определяет 'строку диалога определений препроцессора, которая выглядит как: WIN32; _DEBUG; _WINDOWS; _MBCS; $ (NoInherit)

Проверил вещь обратно и определение окончательно распознано.

1 голос
/ 19 февраля 2018

Для VS2015 я отредактировал файл .vcxproj и добавил следующий раздел:

<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">  
  <ItemDefinitionGroup>
    <ClCompile>      
      <PreprocessorDefinitions>MY_VARIABLE=SOMETHING</PreprocessorDefinitions>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...