1

F# でコンパイラを作成しており、.net ランタイムでアンマネージ メタデータ COM インターフェイスにアクセスできるようにしたいと考えています。誰かが言及する前に、Reflection.Emit は私の目的には適しておらず、メタデータ COM インターフェイス以外の方法を使用したくありません。

mscoree.tlb をインポートしましたが、必要なインターフェイスが含まれていないようです。

私が興味を持っているインターフェイスには、IMetaDataEmitが含まれます。これに関連するサンプル コードは非常に役に立ちますが、これまでのところ見つけることができませんでした。

C# のサンプルは、F# に簡単に変換できるので問題ありません。

このやや不可解なクエリで私を助けることができる人に前もって感謝します!

更新:インターフェイス GUID を使用して明示的な COM 参照を記述することで、これを並べ替えました。

4

2 に答える 2

1

必要なインターフェイスを正確にラップするためのソース コードを含むmdbg サンプルを見つけていただければ幸いです。

于 2009-01-03T22:50:54.323 に答える
1

ここでのオプションの 1 つは、独自のプロジェクトを作成し、これらのインターフェイスを (cor.h の定義を使用して) タイプ ライブラリにコンパイルすることです。これにより、マネージ アセンブリに tlbimp することができます。C ヘッダー コードを IDL に変換するのはかなり面倒ですが、テキスト処理スクリプトによって自動化 (または部分的に自動化) できる可能性があります。

于 2008-10-24T02:29:14.073 に答える