2010-05-19 22 views
2

我們使用COM/ActiveX對象向我們的仿真軟件公開一個接口。這在XP中工作得很好,但在Vista中,當VB客戶端執行CreateObject()時,我們得到「Error 429:ActiveX can not create object」。使COM對象在Vista中運行

COM對象已被手動註冊,以便Vista註冊表與XP註冊表完全相同。我從開始使用「以管理員身份運行」的DOS窗口運行VB界面。在我使用VB中的調試器時,客戶端正在正確訪問和讀取註冊表,所以它顯然不是安全設置,盡我所知。

我也裝載文件到VS2005(該對象最初是在VS6創建)和重建他們獲得更高ATL版本,但是這並沒有幫助 - 我們仍然得到429錯誤。

這是UAC問題的症狀,還是我應該尋找更深層次的東西?

+1

嘗試進程監視器 - 你可能會發現一些非常有趣的東西。 – sharptooth 2010-05-19 12:34:37

回答

1

安裝在Vista上的所有依賴項?它可能是一些在XP上標準的dll不在Vista上,所以你現在需要安裝它。

我會使用procmon看到條目其試圖打開

+0

是的,Process Monitor可以對「在這裏工作,在那裏不起作用」的COM問題非常有幫助。 – sharptooth 2010-05-19 12:46:12

1

首先哪些文件/註冊表,你運行Regsvr32.exe或只是破解​​註冊表?如果是後者,請嘗試運行regsvr32.exe。

另外,如果仿真軟件碰巧使用腳本機制來實例化ActiveX對象,請確保您具有ActiveX對象的所有依賴關係,並且尚未爲ActiveX對象或其依賴關係設置kill-bit