沒法將類型爲「System.__ComObject」的 COM 對象強制轉換爲接口類型,緣由爲沒有註冊類

錯誤描述

e = {"沒法將類型爲「System.__ComObject」的 COM 對象強制轉換爲接口類型「OpcRcw.Da.IOPCServer」。此操做失敗的緣由是對 IID 爲「{39C13A4D-011E-11D0-9675-0020AFD8ADB3}」的接口的 COM 組件調用 QueryInterface 因如下錯誤而失敗: 沒有註冊類 (異常來自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。"}
沒法將類型爲「System.__ComObject」的 COM 對象強制轉換爲接口類型「HaiGrang.Package.OpcNetApiChs.DaInterface.IOPCServer」。此操做失敗的緣由是對 IID 爲「{39C13A4D-011E-11D0-9675-0020AFD8ADB3}」的接口的 COM 組件調用 QueryInterface 因如下錯誤而失敗: 沒有註冊類 (異常來自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。

緣由和解決方法

64位系統下,有些組件(微軟的)只有32位版本,64位的應用程序調用不了32位的COM組件,返回的結果就是沒有註冊類
別。 在64位系統中,VS2008默認會生成64位的程序,你能夠改變程序的部署平臺爲×86來生成32位的程序。
解決方法:
在「解決方案」-》「開發項目的名稱」,鼠標右擊,單擊「屬性」-》「生成」-》「目標平臺」,把「AnyCPU」改爲「
×86」,從新編譯程序便可。

相關文章
相關標籤/搜索