2009-03-30 9 views
8

C#のMicrosoft Debug Interface Access SDKを使用しようとしています。これはVisual Studioにインストールされていますが、C#でどのように使用するかは書かれていません。C#からMS DIA SDKを使用するにはどうすればよいですか?

私はインターウェブ上のサンプルコードを見つけましたが、DIA SDKへのリンク方法に関する情報はありません。私。アセンブリとしてインポートすることはできません。私はそれを管理されたC++アプリケーションに含める必要はないと思って、それをCOM(それは地獄だろう)として使用する必要があります。

IDLファイルがありますが、これは正しい方法ですか?もしそうなら、どうですか?


編集:以下は参照アセンブリとして使用するためのタイプライブラリを作成します。バッチファイルに貼り付けます。

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

答えて

15

あなたは最初のタイプライブラリへのIDLを変換する必要がありますよう

何か:

midl /I "%VSINSTALLDIR%\DIA SDK\include" dia2.idl /tlb dia2.tlb 
tlbimp dia2.tlb 

次に、あなたがTLBをインポートすることができます。

私はこのようにDIA SDKを使用したことがないので、どれほどフレンドリーなのか分かりません。また、マネージC++アセンブリから直接使用し、必要な機能に管理されたインタフェースを提示することもできます。

+0

感謝を解決し得るために実行する必要がありました。それはDllImport PInvokeのものを使用していますか? – Nick

+0

あなたは「この方法でDIA SDKを使用したことはありません」と言いました。そのように使用しないと、どうやって使用しますか? – Nick

+0

生成されたtlbでtlbimpを実行したら、マネージコードから参照できるアセンブリを取得する必要があります。アセンブリはあなたからCOM相互運用を行い、何もdllimportまたはPInvokeする必要はありません。 アンマネージドC++からのみ使用しました –

2

上記の手順は機能しましたが、更新が必要でした。 VSINSTALLDIRはもう存在しません(複数のVSバージョンがインストールされているとあいまいです)ので、指示を一般化して修正しました。 VS2015のバージョンは

"%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" amd64 
set DIASDK=%VS140COMNTOOLS%..\..\DIA SDK 
midl /I "%DIASDK%\include" "%DIASDK%\idl\dia2.idl" /tlb dia2.tlb 
tlbimp dia2.tlb 

です。使用するバージョンに合わせてVS140を変更してください。

これは私が参照として追加したdia2lib.dllを作成しました。 - 参照を右クリックし、参照の追加、参照、ファイルの検索を行います。それは動作し、私は今ビルドしてシンボルを実行することができます。ケース誰かに

1

パスに問題があり、ここではVS 2017のために私のため

    を働いているもの
  1. オープンx86_x64クロスツールは、管理者モードで2017 スタート/プログラム/ Visual Studioのから(コマンドプロンプト

  2. cd C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional

  3. midl /I "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\DIA SDK\idl";"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\DIA SDK\include" dia2.idl /tlb dia2.tlb

  4. tlbimp dia2.tlb

Dia2Lib.dllC:\Program Files (x86)\Microsoft Visual Studio\2017\Professionalフォルダになりました。

これをC#コードで使用すると、登録されていないDLLの例外が発生しました。私は

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\DIA SDK\bin>regsvr32 msdia140.dll

が、これは

関連する問題