MIDL ツールを使用して特定のヘッダー/iid およびプロキシ ファイルを作成するプロジェクトがあります。これらのファイルは、nmake を呼び出すビルド後のステップを使用してコンパイルされ、プロジェクトの残りの部分とリンクされます。
IDL で生成されたファイルでプリコンパイル済みヘッダーを使用することはできますか? #include "stdafx-h"
含まれている他のヘッダーを挿入および削除するにはどうすればよいですか?
MIDL ツールを使用して特定のヘッダー/iid およびプロキシ ファイルを作成するプロジェクトがあります。これらのファイルは、nmake を呼び出すビルド後のステップを使用してコンパイルされ、プロジェクトの残りの部分とリンクされます。
IDL で生成されたファイルでプリコンパイル済みヘッダーを使用することはできますか? #include "stdafx-h"
含まれている他のヘッダーを挿入および削除するにはどうすればよいですか?
/FI オプション(強制インクルード)を使用します。「このオプションは、コマンド ラインで指定されたすべてのソース ファイルの最初の行の #include ディレクティブで、CL 環境変数で二重引用符を使用してファイルを指定するのと同じ効果があります。またはコマンドファイルで。」
他のヘッダーは削除されませんが、プリコンパイル済みヘッダーを使用する必要はありません...プリコンパイルするすべてのヘッダーは、stdafx.h に含める必要があります。次に、ファイルにインクルージョン ガードがあれば、ソースに再度インクルードされても問題ありません。
例
生成されたa.cpp
ファイル:
#include <a.h>
#include <b.h>
//rest of the code
をプリコンパイルしたいとしa.h
ますb.h
。次に、ファイル stdafx.h を作成します。
#include <a.h>
#include <b.h>
次に、/FI オプションを使用して、この stdafx.h を最初のファイルとして に含めますa.cpp
。ファイルa.h
とincludeguardsb.h
がある場合、それらをそのままにしておくことは問題ではありません...a.cpp
「stdafx.h」は単なる慣例です。生成されたソース ファイルにインクルード ヘッダーの標準プレフィックスが常に含まれていることがわかっている場合は、/Yu
スイッチでそれらの最後に名前を付けることができます (プリコンパイル済みヘッダーを使用)。PCH を作成するには、これらの固定ヘッダーのみを含む単一の .cpp ファイルを作成し、.cpp でコンパイルし/Yc
ます。