2008-10-14 83 views
0

我有試圖創建使用下面的代碼線COM對象VB6的DLL時:「對象變量或With塊變量未設置」試圖創建COM對象

Set CreateObj = CreateObject("OPSValuer.OPSValue") 

然而這個失敗,並錯誤「Object variable or With block variable not set」。

我可以在dcomcnfg中看到OPSValuer.OPSValue,它似乎已經很好地註冊了。有沒有人有任何想法可能會導致問題?

+0

你能通過展示此問題的最小代碼示例嗎?我想我知道問題可能是什麼,但請提供更多的上下文 – 2008-10-14 20:49:32

回答

2

DMKing是正確的關於OleView。也可以試着看看Dependency Walker中的控件,任何缺失的依賴關係都應該快速到達表面。

由於這是一個DCom組件,在組件構造函數中也可能存在某些失敗的情況,如果在構造函數中有任何失敗,您將得到該錯誤。這是一個本地DCom對象還是在另一個層上運行的東西?

而不是CreateObject嘗試使用標準New實例化它,看它是否會給你一個不同的錯誤。添加參考本身可能有助於確定錯誤。你有沒有理由使用後期綁定,而不是早期綁定?

+0

這是一個本地DCOM對象。我們使用後期綁定,因爲包含CreateObject()調用的方法在要實例化的對象的名稱中傳遞(在這種情況下爲OPSValuer.OPSValue)。 – 2008-10-15 13:11:59

3

您試圖實例化的類可能沒有正確安裝,或者缺少一些依賴關係。如果您有權訪問OLE視圖,則可以嘗試在VB之外實例化該類。如果它不會實例化,那麼你的安裝很糟糕或缺少依賴。 OLE視圖附帶Visual Studio,在您的系統上搜索OleView.exe。

有人就設在這裏我的系統上:d:\ Program Files文件\微軟的Visual Studio 8個\ Common7 \工具\ BIN

0

錯誤可能的對象初始化程序中被拋出。我在Google上沒有找到「OPSValuer.OPSValue」,這讓我認爲這是自定義代碼遇到錯誤。

+0

OPSValuer.OPSValue確實是我們自己的組件。 – 2008-10-15 13:12:39

0

假設OPSValuer.OPSValue是用VB編寫的組件,這可能是該組件的Class_Initialize事件中引發的錯誤。如果你有組件的來源,它應該很容易調試。

相關問題