我正在尝试将一个包装器写入一个服务,该服务将由现有的VB6项目使用。除了一个重要的方面,我已经掌握了大部分基础框架:除了一个重要的方面:我可以在VB6项目中引用包装器,并且子/函数调用等按预期工作,但事件不会。这些事件在VB6应用程序中可见,但他们从不开火。提高暴露给COM的类库中的事件
VB.NET代码:
Public Event Action_Response(ByVal Status as String)
Public Function TestEvent()
RaiseEvent Action_Response("Test Done")
Return "Done"
End Function
VB6代码:
Dim WithEvents my_Wrapper as Wrapper_Class
Private Sub cmdTest_Click()
Set my_Wrapper = New Wrapper_Class
Debug.Print my_Wrapper.TestEvent()
End Sub
Private Sub my_Wrapper_Action_Response(ByVal Status As String)
Debug.Print Status
Set my_Wrapper = Nothing
End Sub
因此, '完成' 的cmdTest按钮代码打印效果与预期,但Action_Response不会触发事件。我还需要做些什么才能让事件发生?
文档你是如何使你的VB.NET类'' –
2010-12-20 16:56:53
@Hans:我创建了类库项目,删除了默认类,然后添加了一个新项目,并从选项中选择了“COM类”。 – Antagony 2010-12-20 17:25:40
我不得不直接使用来使事件正常工作。我+虽然+ 会自动做到这一点,但它似乎并没有这样工作。 –
DarinH
2010-12-20 22:49:50