2013-01-09 136 views
1

我有兩臺測試機器說機器A和B(都是64位)。有一個VB6應用程序使用Vbsql OLE自定義控制模塊(Vbsql.ocx)。VBSQL.OCX未註冊-ERROR

這VB應用程序運行正常,而不在機器A的任何錯誤,但它當機B.執行

enter image description here

注意與以下錯誤消息失敗:我從一個機器複製的OCX文件註冊它在機器B上,但它無法註冊錯誤截圖如下所示。

enter image description here

這兩款機器沒有VB6 IDE,所以我可以能夠調試。

+2

下運行命令使用客戶端系統上'依賴Walker'工具,以確定哪些DLL文件丟失的客戶端系統上,並將其複製到同一目錄客戶端系統作爲.OCX並嘗試重新運行它 - http://www.dependencywalker.com – Petesh

+0

謝謝。在我的情況下,很明顯,VBSQL.OCX是問題,並missing.Why它未能加載時再次註冊? – Jeyaganesh

+1

@jeyaganesh:正如Petesh所說,OCX可能需要其他DLL,這些DLL在系統上也是缺失的。這就是Dependency Walker的作用。 – krlmlr

回答

1

我找到了一種方法來註冊VBSQL.OCX文件。

使用依賴關係walker我計算出NTWDBLIB.dll文件在計算機B中丟失,因此被複制到SYSWOW64文件夾中並使用提升的命令提示符註冊。

1

您是否嘗試過運行32位版本的regsvr32

%WINDIR%\...\SysWOW64\regsvr32 vbsql.ocx 

64位版本不會加載此(推測)32位DLL。

+0

我已經嘗試過使用syswow64註冊,但得到相同的錯誤信息 – Jeyaganesh

0

您可以將ocx文件放在與您的可執行文件相同的目錄中。

+0

我有這個OCX文件在同一目錄中,仍然不起作用 – Jeyaganesh