2010-02-01 80 views
0

我註冊了我非常簡單的本機COM服務器,我的本機COM客戶端可以成功地調用COM方法。但是,我管理的COM客戶端拋出了以下錯誤:COM服務器的託管客戶端拋出InvalidCastException

無法將類型'DevicesLib.MyComClass'的COM對象轉換爲接口類型'DevicesLib.IMyComInterface'。此操作失敗,因爲對於IID爲「{503DDA5C-F8A2-4273-810F-3855EE0F2B78}」的接口,COM組件上的QueryInterface調用由於以下錯誤而失敗:沒有此類接口支持(異常來自HRESULT:0x80004002(E_NOINTERFACE)) 。

我用tlbimp.exe生成延遲簽名的互操作dll。我的操作系統是64位Windows Server 2008 R2。

有什麼想法?

感謝 萊昂

回答

1

後,我裝飾[請將STAThreadAttribute]主(),它的工作。

1

您的界面不得註冊編組。您的CoClass可能註冊爲需要STA。沒有STAThreadAttribute,主線程是MTA。創建COM對象將其放入不同的STA線程,然後嘗試將接口指針編組回給您。

相關問題