2016-12-21 6 views
0

私はCOMコンポーネントを持っていますが、TLBIMPツールを使ってinterop dllを作成しました。デフォルトインターフェイスにアクセスすると、InvalidCastExceptionで失敗することがあります(System .__ ComObject ' )C#でCOMコンポーネントを使用するとInvalidCastExceptionが発生する

private void SomeMethod(IMyInterface iObj) 
{ 
     **//Following cause error InvalidCastException, not always but Intermittently** 
     //MyComponent comp = new MyComponentClass();  
     //comp= iObj as MyComponent 


     **//The below code works fine.** 
     IMyInterface comp = new MyComponentClass(); 
     comp = iObj; 
} 

IDL宣言

coclass MyComponent 
    { 
     [default] interface IMyInterface; 
    }; 

上記の関数でコメントしたコードがエラーで失敗した理由を任意のアイデア? MyComponentのcomp = new MyComponentClass()行がデフォルトインタフェースを返すはずです。この場合、LHS変数の型がinterfaceであるべきではありません。

答えて

関連する問題