1

.NETで使用するためにMicrosoftのDIASDKをインポートしようとしました。

call "%VS90COMNTOOLS%\vsvars32.bat"
midl /I "%VSINSTALLDIR%\DIA SDK\include" "%VSINSTALLDIR%\DIA SDK\idl\dia2.idl" /tlb dia2.tlb
tlbimp dia2.tlb

これはほとんどの部分で正しく機能しているようですが、何らかの理由で、一部のインターフェイス(たとえばIDiaEnumFrameData)が含まれていませんが、残りのインターフェイスは問題なく含まれています。

(インターフェイスは、Cファイルとヘッダーファイルに存在していても、.DLLファイルにも.TLBファイルにも存在しません。)

これを引き起こしているのは何ですか?

4

3 に答える 3

1

midl.exe は、生成されたタイプ ライブラリに、idl の説明の「ライブラリ」セクションからアイテム (およびその依存関係) のみを押し込みます。

見逃したインターフェイスを「ライブラリ」セクションに追加すると、必要なものが得られます

//...
library Dia2Lib
{
//...
interface IDiaEnumFrameData; // << insert it
//...
}
于 2015-12-08T00:18:32.730 に答える
0

難しい道を試すかどうかはわかりませんが、IDL にアクセスできる場合は、Codeproject の TaskScheduler プロジェクトで行われたのと同様の作業を使用してインターフェイスを模倣できます。(はい、古いことは知っています)。

TaskSchedulerInterop.cs

http://www.codeproject.com/script/Articles/ViewDownloads.aspx?aid=2407

于 2012-02-28T04:12:56.917 に答える