開發一些第三方的接口或者功能時..有時會需要接入對方提供Com組件..是一個dll文件..
這個文件會在你的程序中引用..
比如一個CMBChina.dll文件..這是招商銀行的支付開發時必備的..
下面我們就以這個為例來說一說..
他們提供的Demo里..有一個寫好的Vbs文件..正常情況下只要 "以管理員身份運行" 就可以完成注冊了..
但是本人的電腦是Win8 .. 右鍵選項里根本就沒有這一項..
沒辦法玩自動..只有手動了..
在開始菜單里找到系統工具的 命令提示符 右鍵 以管理員身份運行
打開窗口是這樣的..注意: 是<管理員:命令提示符>
這個時候我們就可以開始注冊了..但是有個問題需要注意..
要注冊的Dll文件應該放在英文的文件夾中..不應該出現中文路徑..
開始注冊:
普通的32位注冊就可以直接輸入 regSvr32 你的路徑
例如:
確定之后,會提示成功注冊!!
如果是64位的,則需要指向到一個固定的目錄才能正確注冊..
前邊的步驟都是一樣的..
打開命令提示工具之后..先輸入 CD C:\Windows\SysWOW64\
目錄會轉至 C:\Windows\SysWow64
然后輸入跟前邊注冊一樣的命令 regSvr32 你的路徑
確定..提示成功!!
到了這里..組件的注冊就完成了..
但是新的問題來了..
招商銀行的Demo依然會報錯..
檢索 COM 類工廠中 CLSID 為 {820280E0-8ADA-4582-A1D9-960A83CE8BB5} 的組件時失敗,原因是出現以下錯誤: 80040154
這是為什么呢..
[轉]檢索 COM 類工廠中 CLSID 為 { } 的組件時失敗,原因是出現以下錯誤: 80040154。
檢索 COM 類工廠中 CLSID 為 {XXXX-XXXX-XXX-XXXXX-XXX} 的組件時失敗,原因是出現以下錯誤: 80040154。
如以上問題出現,多半是因為COM控件未在目標機器上面注冊造成的
解決方法:
Resvr32 .net中引用控件的名稱
如果注冊成功,問題不在出現
但是如果是在x64位的系統中,即使控件注冊成功,錯誤依照提示,是因為大多數第三方寫的COM控件,只支持32位的系統,
在VS中找到引用控件所在的項目--〉屬性--〉生成--〉常規---〉目標平台---〉選擇X86即可解決。
修改之后..程序神奇的跑了起來..哈哈.