我正在嘗試將一個包裝器寫入一個服務,該服務將由現有的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