VB中怎样调用VC中的这个回调函数
VC中的原型是这样的
//VC中的API是这样的
NET_DVR_API BOOL __stdcall NET_DVR_SetDVRMessCallBack(BOOL (CALLBACK *fMessCallBack)(LONG lCommand,char *sDVRIP,char *pBuf,DWORD dwBufLen));
//VC中的自定义函数
int CALLBACK MessageCallback_EX(LONG lCommand,LONG lUserID,char *pBuf,DWORD dwBufLen)
{
....
NET_DVR_ALARMINFO m_alarminfo;
memcpy(&m_alarminfo, pBuf, sizeof(NET_DVR_ALARMINFO));
BYTE cTemp[CARDNUM_LEN];
memcpy(cTemp, m_sCardNum, CARDNUM_LEN);
....
}
//VC中调用
NET_DVR_SetDVRMessCallBack(MessageCallback);
_______________________________________________________________________________
VB中我是这样写的,请问各位问题主要在哪里
_______________________________________________________________________________
'VB声明我是这样的
Declare Function NET_DVR_SetDVRMessCallBack Lib "HCNetSDK.dll" (ByRef fMessCallBack As Long) As Boolean
dim cTemp as String
CopyMemory cTemp, m_sCardNum, ByVal CARDNUM_LEN
'vb中我是这样写的回调的,里面的CopyMemory
Private Function MessageCallback(lCommand As Long, sDVRIP As String, ByRef pBuf As String, dwBufLen As Long) As Integer
....
Dim m_alarminfo As NET_DVR_ALARMINFO
CopyMemory m_alarminfo, pBuf, ByVal Len(m_alarminfo) '这个对不对呀
dim cTemp as string
CopyMemory cTemp, m_sCardNum, ByVal CARDNUM_LEN ' '这个对不对呀特别是cTemp
....
End Function
'调用我是这样的,关于回调我有不明白了,为何MessageCallback是有参数的,为何不管VC和VB,VC调用是没有参数的,VC的也没有吗,参数是怎样传递的
NET_DVR_SetDVRMessCallBack AddressOf MessageCallback