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

use*_*623 39 c++ visual-studio-2005 visual-studio c-preprocessor

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

例如

#define NOGDI
#include <windows.h>
Run Code Online (Sandbox Code Playgroud)

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

ten*_*our 70

项目设置 - > C/C++ - >预处理器 - >预处理器定义

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

  • 至少据我所知,这不再起作用了.VS2015有新方法吗? (3认同)

小智 6

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

但这仍然不起作用!

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

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

回来检查了一下,定义终于被识别了。

  • 我发现由于某种原因,重新检查、应用然后重新检查此选项解决了我的问题。我不知道为什么。 (3认同)