錯誤描述
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”,重新編譯程序即可。