管理されていないC++で記述されたCOMDLLがあり、VS 2010でコンパイルされています。ベランダ32を使用してDLLを登録し、VBscriptを介して呼び出すことができます。
C#クライアントの作成中に参照を追加しようとすると、[参照の追加]->[COM]タブにCOMオブジェクトが表示されません。手動でDLLを参照して選択しようとすると、DLLが有効なアセンブリまたはCOMコンポーネントではないことが示されます。
これで、tlbimpツールを使用して相互運用機能DLLを生成し、それを使用してC#クライアントへの参照として追加できます。そして、すべてが正常に動作します。
私の質問は次のとおりです。
- 元のCOMが、zippy32を介して登録されたときに、[参照の追加]ダイアログの[COM]タブに表示されないのはなぜですか?
- VBScriptおよびC++ネイティブコードから呼び出すことができるのに、VS IDEが有効なCOMではないと考えるのはなぜですか?
- IDEができないtlbimpは正確に何をしますか?
- ここでのタイプライブラリと相互運用性についての理解を深めるために、さらに何を読む必要がありますか?