2016-06-28 19 views
0

私は別の外部TLBファイルで定義されたインターフェイスを実装するC#クラスを持ち、interopを通じてプロジェクトにインポートします。私はのIDispatch :: GetTypeInfoCountはを呼び出し、引数としてのIDispatchを取り、C++関数にMyCoClassのインスタンスを渡すときに、なぜC#coclass - GetTypeInfoCountは0を返します

[ComVisible(true)] 
[ComDefaultInterface(typeof(IInterfaceFromSeparateTLB))] 
[ClassInterface(ClassInterfaceType.AutoDual)] 
[Guid("4FFBBD0D-6F4B-47D4-B4F9-586F8C108BAD")] 
[IDispatchImpl(IDispatchImplType.CompatibleImpl)] 
public class MyCoClass : IInterfaceFromSeparateTLB {} 

、私は常に0を取得しますか?

答えて

0

IDispatch :: GetTypeInfoCount 0x8002802b(TYPE_E_ELEMENTNOTFOUND)だったHRESULTをチェックするのを忘れました。 DLLの横に.TLBファイルのコピーを置いて、 "Interop Typesを埋め込む"オプションをfalseに設定して、問題はなくなりました。

関連する問題