Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何设置visual studio以全局注册某些定义?_C++_Visual Studio_Visual Studio 2005_C Preprocessor - Fatal编程技术网

C++ 如何设置visual studio以全局注册某些定义?

C++ 如何设置visual studio以全局注册某些定义?,c++,visual-studio,visual-studio-2005,c-preprocessor,C++,Visual Studio,Visual Studio 2005,C Preprocessor,我的意思是,在我的每个源文件中,我必须插入define NOGDI来阻止windows.h包含GDI定义,因为它的位图定义与我的冲突 e、 g 不幸的是,我必须在每一个单独的源文件(包括windows.h)中这样做,我不想这样做。 我正在使用VisualStudio2005,是否有任何方法可以将其设置为全局定义?i、 e.在所有源文件中。项目设置->C/C++->预处理器->预处理器定义 在这里,您可以定义全局应用于项目中所有源代码的符号。我已经为整个项目设置了所需的定义,如中所述 项目设置->

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

e、 g

不幸的是,我必须在每一个单独的源文件(包括windows.h)中这样做,我不想这样做。
我正在使用VisualStudio2005,是否有任何方法可以将其设置为全局定义?i、 e.在所有源文件中。

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


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

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

但无论如何,这并没有起作用

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

在“预处理器定义”对话框的“定义”行中,它被视为: WIN32_调试_窗户_MBCS$诺因赫里特

重新检查了内容,最终识别了定义。

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

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

@user631623:如果这有帮助并回答了您的问题,您应该通过单击旁边的绿色复选标记将其视为正确答案。@adam:是的,他回答得很快,不允许我这么快选择正确答案,所以我完全忘记了,对不起。至少就我所知,这不再有效了。VS2015有新的方法吗?对于源自Visual Studio的Atmel Studio 7,您可以在以下位置找到选项:[项目属性]右键单击Project explorer->Toolchain->YourCopiler Compiler->Symbols中的Project,点击add按钮并设置例如F_CPU=8000000 uLat,至少在msvs 2019中,我只能定义符号,如条件,除了tenfour的答案外,您还可以创建类似config.h的东西,其中包含您最喜欢的定义,然后将此文件包含在源代码中:在MSV中搜索全局定义时,这个问题会出现在第一个条目中。那么对于MSVS2019,有没有一种方法可以定义像全局定义INTX static_castX这样的东西呢?出于某种原因,我发现通过检查、应用,然后重新检查这个选项解决了我的问题。我不知道为什么。有时尝试重建项目会有所帮助。如果仍然不起作用,重新启动VS会有所帮助。
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">  
  <ItemDefinitionGroup>
    <ClCompile>      
      <PreprocessorDefinitions>MY_VARIABLE=SOMETHING</PreprocessorDefinitions>