首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

大师指点:DLL的参数为一个回调函数,VB6可以,VB2005不行。该怎么解决

2012-03-02 
大师指点:DLL的参数为一个回调函数,VB6可以,VB2005不行。Public Function BackCallFun(ByVal a As Integer,

大师指点:DLL的参数为一个回调函数,VB6可以,VB2005不行。
Public Function BackCallFun(ByVal a As Integer, ByVal b As Integer) As Integer
  ...
  ...
End Function

dll申明:

Public Declare Function SetCallBack Lib "DIVERS.dll" (ByVal nBackCallFun As Integer) As Integer

vb6:
dim nResult as integer
nResult = SetCallBack(AddressOf BackCallFun)
成功

vb2005:
dim nResult as integer
nResult = SetCallBack(AddressOf BackCallFun)

“AddressOf”表达式不能转换为“Integer”,因为“Integer”不是委托类型。

请教大虾指点!谢谢!

[解决办法]
Public Delegate Function BackCallFunDelegate(ByVal a As Integer, ByVal b As Integer) As Integer

Public Function BackCallFun(ByVal a As Integer, ByVal b As Integer) As Integer
 
End Function



Public Declare Function SetCallBack Lib "DIVERS.dll" (ByVal nBackCallFun As BackCallFunDelegate) As Integer
 
Dim nResult As Integer
nResult = SetCallBack(New myDelegate(AddressOf BackCallFun) )

热点排行