C++编写的WES.dll中需要调用VB提供的回调函数:VB调用WES.dll
Module.bas中:
Declare Sub SetVerificationCallBack Lib "WES.dll" (ByRef lpProc As Long)Public Sub ReadInfo(ByVal info As String, ByVal length As Long)
...处理代码
End SubForm1.frm中:
Option Explicit
Function GetFuncPtr(ByVal Ptr As Long) As Long
GetFuncPtr = Ptr
End FunctionPrivate Sub Command1_Click()
Dim a As Long
a = StartUsbListen()
'lpProc = GetFuncPtr(AddressOf ReadInfo)
'SetVerificationCallBack VarPtr(GetFuncPtr(AddressOf ReadInfo))
SetVerificationCallBack AddressOf ReadInfo
Command1.Enabled = False
End SubWES.dll调用时总是直接报错。“XXX指针引用的内存,该内存不可读”。VB.exe直接关掉了。
不知道原因到底出在哪????
VB6.0 回调函数
Module.bas中:
Declare Sub SetVerificationCallBack Lib "WES.dll" (ByRef lpProc As Long)Public Sub ReadInfo(ByVal info As String, ByVal length As Long)
...处理代码
End SubForm1.frm中:
Option Explicit
Function GetFuncPtr(ByVal Ptr As Long) As Long
GetFuncPtr = Ptr
End FunctionPrivate Sub Command1_Click()
Dim a As Long
a = StartUsbListen()
'lpProc = GetFuncPtr(AddressOf ReadInfo)
'SetVerificationCallBack VarPtr(GetFuncPtr(AddressOf ReadInfo))
SetVerificationCallBack AddressOf ReadInfo
Command1.Enabled = False
End SubWES.dll调用时总是直接报错。“XXX指针引用的内存,该内存不可读”。VB.exe直接关掉了。
不知道原因到底出在哪????
VB6.0 回调函数
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货