2011-01-28 15 views
5

私はVisual Studio 2010に移行している従来のC++ COMプロジェクトを作成しています。このプロジェクトのIDLファイルでは、別のC++プロジェクトからODLファイルを参照する必要があります。私の問題は、他のプロジェクトがヘッダファイルを$(filename)_h.hとして生成することです。 IDLファイルがヘッダファイルを生成すると、ODLファイル名は$ filename.hとして生成され、正しいファイルを参照することはできません。言い換えればIDL生成ヘッダーファイルの変更

、私のIDLファイル( "MyIDLFile.idl")に私が持っている

輸入 "MyODLFile.odl" のような文

その生成されたファイル( "MyIDLFile.h")で私はそれが"をMyODLFile_h.h" が含ま

を生成する必要がある場合に

なりは

を "MyODLFile.h" が含ま

ファイル名を指定する方法IDLをインポート文で生成させたいのですが?

答えて

2

インポートステートメントの意味がわかりませんが、探しているものがプロジェクトのプロパティの下にある可能性があります。プロパティー・ウィンドウ(Alt-F7)と「構成プロパティー/ MIDL /出力」の下に移動して、作成したいヘッダー・ファイルを宣言することができます。プロジェクトが従来のものであるため、ヘッダーファイル名(例:$(ProjectName)_h.hの代わりに$(ProjectName).h)から "_h"を削除する方が簡単です。詳細はhttp://support.microsoft.com/kb/321274を参照してください。

+2

これは、OPが参照しているインポートステートメントです。http://msdn.microsoft.com/en-us/library/ windows/desktop/aa367047.aspx これを使用すると、従属IDLのMIDL生成ヘッダーに、他のヘッダーのインクルードが含まれます.Oと同じ名前が使用されているようですDLファイルの末尾に ".h"が付いています。 Visual Studioがデフォルトで "%(Filename)_h.h"をMIDL生成のヘッダーファイル名として使用すると、なぜこのようなことが起こるのか分かりません。したがって、デフォルトを使用すると、そのIDL/ODLファイルを決して別のものにインポートすることはできません。 – Steiny

0

これは共通の問題のようです、私は何か良い解決策を見つけることができませんでしたが、1つの回避策は、あなたのIDLファイルに「_i」を追加することであるが、例えばEquipmentConstants_i.idl

マイクロソフトが基準Aを行います/ヘッダーのコンパイルスイッチが動作するようになっていませんでした(midl /header switch

関連する問題