web-dev-qa-db-ja.com

いくつかの#definesをグローバルに登録するようにVisual Studioをセットアップするにはどうすればよいですか?

つまり、各ソースファイルに#define NOGDIを挿入して、windows.hがGDI define(BITMAPが私のものと競合するため)をインクルードしないようにする必要があります。

例えば.

#define NOGDI
#include <windows.h>

残念ながら、windows.hを含むすべての個別のソースファイルでこれを行う必要がありますが、これは行いたくありません。 Visual Studio 2005を使用していますが、何かをグローバルに定義するように設定する方法はありますか? (つまり、すべてのソースファイル)。

38
user631623

プロジェクト設定-> C/C++->プリプロセッサ->プリプロセッサ定義

ここで、プロジェクトのすべてのソースコードにグローバルに適用されるシンボルを定義できます。

69
tenfour

説明したように、プロジェクト設定-> C/C++->プリプロセッサ->プリプロセッサ定義で、プロジェクト全体に必要な定義を設定しました

しかし、これでもうまくいきませんでした!

最終的に、問題は「Inherit from parent or project defaults」というチェックなしのNoInheritチェックボックスにあることが判明しました。

プリプロセッサ定義ダイアログの定義の行では、次のように表示されます。WIN32; _DEBUG; _WINDOWS; _MBCS; $(NoInherit)

確認して、最終的に定義が認識されました。

3
Mna

VS2015の場合、.vcxprojファイルを作成し、次のようなセクションを追加しました。

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