2011-03-11 31 views
0

我在delphi dll中創建了帶寬監視功能,如果發生任何帶寬傳輸,我需要引發一個事件。同樣我需要在vb中聲明delphi dll並使用dll事件。任何想法歡迎在delphi DLL中可以使用VB6的消費事件

+0

它是什麼樣的對象?如果它是一個COM對象觸發COM事件,那麼你將能夠捕獲它們。如果它是德爾福內部的東西,那麼可能不是。 – mdm 2011-03-11 13:12:18

+0

yes com object firing com events – 2011-03-11 13:13:49

+2

它會像任何其他COM對象一樣工作 - 然後添加一個對它的引用,在你的代碼中用'WithEvents'修飾符聲明它的引用,那麼你應該可以添加事件處理程序(tip :使用代碼窗口頂部的列表框選擇對象,然後選擇事件。) – mdm 2011-03-11 13:16:40

回答

1

我相信你想要一個IDispatch接口,這意味着你(a)在Delphi中定義一個類,(b)使用雙接口(COM vtable + DISPATCH)。 (c)將該COM對象暴露給你的VB對象。 (d)在VB中,您還定義了一個IDispatch類型的COM接口,並將該接口作爲參數傳遞。我會稱這樣一個IDispatch接口爲INotify。

實際上有一些標準的COM接口經常在OLE自動化中使用,比如連接點容器,你可能想看看。看到這篇文章:

http://www.gtro.com/delphi/comevents_e.php