2010-09-02 93 views
0

我創建了一個框架Active X DLL,其Instancing屬性設置爲MultiUse,並且只有一個函數除了彈出一個消息框,被稱爲。測試Active X DLL - 運行時錯誤91對象變量或With塊變量未設置

然後我創建了一個測試程序並將DLL添加到它的引用。

我添加了代碼來聲明DLL的Classmodule的變量,以創建一個新對象並調用該函數。

在所有情況下我都使用Intellisense代碼完成,所以VB6肯定是關於DLL的,它的類是&方法。

但是,當我運行測試程序時,它會在嘗試創建New對象時報告運行時「錯誤91對象變量或未使用塊變量」。

對我來說這是一個新的領域,所以希望它是明顯的東西。


更新:我在一個DLL FN()增加了一個消息框,說,它已被調用,然後去使用Active X調用到DLL現實生活的網站,看到該消息框 - 但我仍然在VB測試應用程序中發生錯誤(!?)

+1

您可以發佈源代碼? – jasonk 2010-09-02 17:02:43

回答

1

如果您可以發佈調用代碼和DLL類,將會更容易找到問題。

這是一個猜測。你是否記得創建新對象的行上的Set

正確的代碼

Set obj = New MyDLL.MyObject 

錯誤代碼

obj = New MyDLL.MyObject 
+0

d'oh! D'哦! D'哦! – Mawg 2010-09-03 03:18:56

+0

很容易忘記!特別是因爲它不需要在vb.net。 – MarkJ 2010-09-03 06:29:55

1

嘗試更改活動x dll中的函數以返回消息。在你的調用代碼中顯示你的消息框,而不是在dll中。

否則,嘗試在命令提示符regsvr32「myDll.dll」,然後運行您的代碼。

+0

+1感謝您的回覆。我確實註冊了DLL(儘管VB應該爲我做這件事)。我不認爲這是消息框的地方,因爲它沒有那麼遠 - 它創建了新的對象 – Mawg 2010-09-02 12:29:14

+0

謝謝4 +1,它確實很重要,因爲消息框不能從內部顯示該DLL,只能從調用VB6應用程序。檢查以下內容: http://us.generation-nt.com/q-problem-displaying-messagebox-inside-foxpro-dll-c-plus-plus-window-help-21365272.html – 2010-09-02 13:19:31

+0

在http上嘗試選項10 ://www.daniweb.com/forums/thread17300.html 打開控制面板 - > compnent服務 console root-> comp services->我的電腦> com + applictions - 將你的dll拖放到窗口中。 – 2010-09-02 13:26:01

相關問題