MIDL生成されたファイルをプリコンパイル済みヘッダーを使用することは可能?
-
22-09-2019 - |
質問
私たちは、特定のヘッダー/ IIDおよびプロキシファイルを作成するために、MIDLツールを使用していますウィッヒプロジェクトを持っています。これらのファイルは呼び出しがNMAKEというポストビルドステップを使用してコンパイルし、プロジェクトの残りの部分とリンクされています。
これは、プリコンパイル済みヘッダーとTHOS IDL生成されたファイルを使用することは可能ですか?どうすればよい#include "stdafx-h"
注入し、他の付属のヘッダを削除しますか?
解決
使用 / FIオプションする (強制インクルード):「このオプションは、CL環境変数に、コマンドラインで指定されたすべてのソースファイルの最初の行に#includeディレクティブで二重引用符を使用してファイルを指定するのと同じ効果があり、またはコマンドファイルで。 "
それは他のヘッダを削除しないであろうが、これはプリコンパイル済みヘッダーを使用するために...あなたがプリコンパイルしたいことをすべてのヘッダーは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>
そして、あなたはa.cpp
への最初のファイルとして含まれ、このSTDAFX.Hを持っている/のFIオプションを使用します。ファイルa.h
とb.h
HAVE はガードがa.cpp
でそれらを残して、に含まれている場合は問題ではありません。..ます。
他のヒント
"stdafx.hを" は、単なる慣習です。あなたはyoutは生成されたソースファイルが常に含まヘッダの標準接頭辞を持っていることがわかっている場合、あなたは(使用がヘッダをプリコンパイル)/Yu
スイッチでそれらの最後に名前を付けることができます。 PCHを作成するには、単にそれらの固定ヘッダを持つ単一.cppファイルを作成し、/Yc
でi番目をコンパイルします。