2011-03-11 44 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