【发布时间】:2019-08-28 11:41:39
【问题描述】:
我在这里的第一篇文章。
我有用于扫描仪的 c# .dll。 我打算将它与一些旧版 vb6 应用程序一起使用。
.dll 使用 RaiseArgs 使用扫描的代码引发事件。
我正在尝试编写一个用于 VB6 应用程序的 .ocx 库。
为了在 .ocx 库中捕获此事件,我正在尝试修改此代码:
Sub TestEvents()
Dim Obj As New Class1
' Associate an event handler with an event.
AddHandler Obj.Ev_Event, AddressOf EventHandler
' Call the method to raise the event.
Obj.CauseSomeEvent()
' Stop handling events.
RemoveHandler Obj.Ev_Event, AddressOf EventHandler
' This event will not be handled.
Obj.CauseSomeEvent()
End Sub
Sub EventHandler()
' Handle the event.
MsgBox("EventHandler caught event.")
End Sub
Public Class Class1
' Declare an event.
Public Event Ev_Event()
Sub CauseSomeEvent()
' Raise an event.
RaiseEvent Ev_Event()
End Sub
End Class
但我得到了
调用时AddressOf操作符错误使用无效:AddHandler Obj.Ev_Event, AddressOf EventHandler
此错误的可能原因是什么?
我怀疑,我在解决这个任务方面没有朝着正确的方向前进,那么这是解决这个问题的更好方法吗?
【问题讨论】:
-
VB6中没有AddHandler。你在使用 VB.NET 吗?
-
嗨!我正在使用 vb6,但似乎我错过了,我只能在 .net 中使用 AddHandler ......你能给我指出如何解决我原来的问题的方向:让事件进入 vb6 吗?
-
如果您已经有一个带有 VB 识别事件的 COM 可见 DLL,请像往常一样声明一个事件处理程序,以
Private Sub ObjectName_EventName()的形式。否则请参阅stackoverflow.com/q/39511528/11683。
标签: vb6