つまり、各ソースファイルに#define NOGDIを挿入して、windows.hがGDI define(BITMAPが私のものと競合するため)をインクルードしないようにする必要があります。
例えば.
#define NOGDI
#include <windows.h>
残念ながら、windows.hを含むすべての個別のソースファイルでこれを行う必要がありますが、これは行いたくありません。 Visual Studio 2005を使用していますが、何かをグローバルに定義するように設定する方法はありますか? (つまり、すべてのソースファイル)。
プロジェクト設定-> C/C++->プリプロセッサ->プリプロセッサ定義
ここで、プロジェクトのすべてのソースコードにグローバルに適用されるシンボルを定義できます。
説明したように、プロジェクト設定-> C/C++->プリプロセッサ->プリプロセッサ定義で、プロジェクト全体に必要な定義を設定しました
しかし、これでもうまくいきませんでした!
最終的に、問題は「Inherit from parent or project defaults」というチェックなしのNoInheritチェックボックスにあることが判明しました。
プリプロセッサ定義ダイアログの定義の行では、次のように表示されます。WIN32; _DEBUG; _WINDOWS; _MBCS; $(NoInherit)
確認して、最終的に定義が認識されました。
VS2015の場合、.vcxproj
ファイルを作成し、次のようなセクションを追加しました。
<Project ToolsVersion="12.0" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>MY_VARIABLE=SOMETHING</PreprocessorDefinitions>