5

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

つまり、私の IDL ファイル ("MyIDLFile.idl") には、次のようなステートメントがあります。

import "MyODLFile.odl"

生成されたファイル (「MyIDLFile.h」) は次のようになります。

「MyODLFile.h」を含める

生成する必要があるとき

「MyODLFile_h.h」を含める

import ステートメントで IDL が生成するファイル名を指定するにはどうすればよいですか?

4

3 に答える 3

2

import ステートメントについて何を意味しているのかわかりませんが、探しているものはプロジェクトの [プロパティ] の下にあるかもしれません。プロパティ ウィンドウ (Alt-F7) に移動し、[構成プロパティ/MIDL/出力] の下で、作成するヘッダー ファイルを宣言する機会があります。プロジェクトはレガシーなので、ヘッダー ファイル名から「_h」を削除する方が簡単な場合があります (例: $(ProjectName)_h.h ではなく $(ProjectName).h)。詳細については、 http://support.microsoft.com/kb/321274を参照してください。

于 2011-03-15T13:58:56.487 に答える
0

これはよくある問題のようです。良い解決策を見つけることができませんでしたが、回避策の 1 つは、idl ファイルに「_i」を追加することです (EquipmentConstants_i.idl など)。

Microsoft は /header コンパイル スイッチを参照していますが、私はそれを機能させることができませんでした ( midl /header スイッチ)。

于 2014-12-10T09:16:11.153 に答える