如何设置visual studio以在全局注册一些#defines?

时间:2011-02-24 04:15:40

标签: c++ visual-studio visual-studio-2005 c-preprocessor

我的意思是,在我的每个源文件中,我必须插入#define NOGDI来阻止windows.h包含GDI定义(因为它是BITMAP定义与我的冲突)。

e.g。

#define NOGDI
#include <windows.h>

不幸的是,我必须在包含windows.h的每个单独的源文件中执行此操作,我不想这样做。 我正在使用Visual Studio 2005,有什么办法可以将它设置为全局#define吗? (即在所有源文件中)。

3 个答案:

答案 0 :(得分:64)

项目设置 - &gt; C / C ++ - &gt;预处理器 - &gt;预处理器定义

在这里,您可以定义全局应用于项目中所有源代码的符号。

答案 1 :(得分:3)

如上所述,我已经为整个项目设置了所需的定义 项目设置 - &gt; C / C ++ - &gt;预处理器 - &gt;预处理器定义

但是这不起作用!

最终结果发现问题出现在NoInherit复选框中, “从父项目或项目默认值继承”

在定义'预处理器定义对话框行中,它被视为: WIN32; _DEBUG; _WINDOWS; _MBCS; $(NOINHERIT)

检查回来的东西,最终确认了定义。

答案 2 :(得分:0)

对于VS2015,我编辑了.vcxproj文件并添加了一个如下所示的部分:

<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">  
  <ItemDefinitionGroup>
    <ClCompile>      
      <PreprocessorDefinitions>MY_VARIABLE=SOMETHING</PreprocessorDefinitions>