在调试DLL时,无法检索从VB6 EXE传递到VB6 DLL的VB.ListBox对象

时间:2016-12-01 11:15:20

标签: dll com listbox vb6

我正在使用日志记录功能维护DLL。我想将ListBox参数添加到此DLL的方法中以允许显示日志记录。

基本上这个dll可以用这种方式描述:

' Class loggingDll.loggingObject
Public Function processIt([...], aLogBox As Object)
' Simple test code lines...
Dim l As VB.ListBox
Set l = aLogBox
' [...]
End Function

EXE附带一个GUI,包含一个VB.ListBox。这个ListBox(让我们称之为LogBox)以这样的方式传递给DLL:

' Exe DllCaller.Exe
Private Sub Form_Load()
    Dim aLoggingObject as loggingDll.loggingObject
    Set aLoggingObject = New loggingDll.loggingObject
    aLoggingObject.processIt(LogBox)
End Sub

当我运行EXE时,这完全正常。但是当在调试模式下运行DLL时,这个EXE(项目 - >属性 - >调试选项卡选项"启动程序"带有EXE的路径),我得到一个丑陋的"类型不匹配& #34;在Set l = aLogBox

我在aLogBox变量上添加了间谍。 TypeName(aLogBox)返回"ListBox",但aLogBox的内容为空(尽管VB.ListBox对象充满了属性)。

发生了什么?为什么调试模式的行为不一样?

0 个答案:

没有答案