無法將類型為“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”,重新編譯程序即可。




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM