IDLファイルでマネージクラス(C#/ .NETで構築)を宣言したいと思いますが、コンストラクタの終了時にInvalidCastExceptionを取得して返します。 (MyThingオブジェクトを 'MyThingClass'と打ち込むことはできません)COMコンストラクタがInvalidCastExceptionをスローする
tlbを登録した後、私のテストアプリケーション(C#/ .NET)でも実際のコンストラクタを呼び出すことができます。私はそれをデバッグすることもできます。コンストラクタから戻ってくるまで、すべてがうまく動作します。
私はimportlibを使ってDLLをIDLにプルすることを考えましたが、ビルド前にtlbが必要です(鶏肉や卵の問題)。
問題の原因を調査すると、単純なキャスティングの問題が発生します。
アイデア?
あなたはこれらの質問を見てきましたか?http://stackoverflow.com/search?q=idl+c%23 –
おそらく例を挙げると、> –
という人がもっと答えるかもしれません。 Tlbexp/Regasmを使用していますか?また、サーバーとクライアントの両方がマネージコードで記述されている場合、なぜCOMをまったく使用していますか? –