还是关于调用回调函数的问题是不是我的思路有问题
//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)
{
....
....
}
//VC中调用
NET_DVR_SetDVRMessCallBack(MessageCallback);
'vb中我是这样写的
'模块中
Declare Function NET_DVR_SetDVRMessCallBack Lib "HCNetSDK.dll" (ByVal fMessCallBack As Long) As Long
Public Function MessageCallback(lCommand As Long, sDVRIP As String, ByRef pBuf As Long, dwBufLen As Long) As Integer
...
...
end Function
'表单调用
funcadd = GetFunAddress(AddressOf MessageCallback)
NET_DVR_SetDVRMessCallBack funcadd
Public Function GetFunAddress(func As Long) As Long
GetFunAddress = func
End Function
这个函数的功能是接收报警信号,接收到后进行处理,我的理解是调用了一次,是不是程序会自动等待接收,还是要不停的调用呢
这个vb程序我运行了一下,没有错误,但是接收不到任何报警信号呀