埋め込み型ライブラリのないVB6標準EXEがあります。私はその実行可能ファイルからinteropアセンブリを生成し、.NETプロジェクトから参照したいと思います。これにより、.NETから実行可能ファイルで定義されたCOMクラスをインスタンス化できます。.NETプロジェクトのtypelib-less COM EXEの参照
タイプライブラリがないので、IDLをゼロから作成し、タイプライブラリを生成するためにMIDLを使用し、タイプライブラリから相互運用アセンブリを生成しました。 .NETプロジェクトからinteropアセンブリを参照できますが、COMクラスをインスタンス化することはできません。私は、私のinteropアセンブリは、EXEについて知りませんし、実際に私が呼び出すコードを実行することはできないと信じています。
VB6で定義されているCOMクラスを既に正常にインスタンス化していますActiveX DLL .NETから実装を含む対応するCOM DLLのClassIDを知っています。
私が作成しているIDLでは、ライブラリ定義のUUIDとして何を使用しますか?これは何とかEXEを参照すべきでしょうか?
[
uuid(WHATUUID-SHOU-LDII-NCLU-DEHEREXXXXXX),
version(1.0),
helpstring("for TLB on EXE")
]
library MyExe { ... }
Thesequestionsが接近しているが、私はまだこだわっています。私がしようとしていることは可能ですか?私はむしろ遅いバインディングを避けるだろう。助けてくれてありがとう。
+1タイプライブラリが常にVB6に埋め込まれていることを確認しています。ActiveX EXE – MarkJ
ActiveX EXEではなくVB6標準EXEであることを明確にするために質問を編集しました。私はEXEを開くと、Visual Studioは実際にタイプライブラリを表示しません。 – pizza247
あなたがしようとしていることはできません、クライアントプログラムでActiveX EXEだけが使用できます。あなたがIDLのソースとして何を使用したのか、私は推測できません。 –