在VC++中的函数声明 : NET_API void _stdcall QNet_SetNetCallBack(pfNetClient pNetCallBack,LPVOID pContext);typedef void(WINAPI *pfNetClient)(HANDLE hConnect,DWORD dwMsgType,PCALLMSG MsgInfp,LPVOID pContent); //网络回调函数
请问,在VB中如何声明那个QNet_SetNetCallBack函数,和下面的网络回调函数。!~~~
下面是我在VB中的声明,可是会出现约定错误;
Public Declare Sub QNet_SetNetCallBack Lib "Net_Dll.dll" (ByVal pNetCallBack As Any, ByVal pContext As Long)回调函数:
Public Function CallBack(hConnect As Long, _
                         dwMsgType As Long, _
                         MsgInfo As TagCtrlMsg, _
                         pContext As Long) As LongEnd Function

解决方案 »

  1.   

    Public Declare Sub QNet_SetNetCallBack Lib "Net_Dll.dll" (ByVal pNetCallBack As long, ByVal pContext As Long)用的时候:QNet_SetNetCallBack addressof(CallBack),...
      

  2.   

    Public Function CallBack(byval  hConnect As Long, _
                             byval dwMsgType As Long, _
                             MsgInfo As TagCtrlMsg, _
                             pContext As Long) As LongEnd Function最后两个参数,用Byval 还是 byref 谁你。如果用Byval Long 接收指针,再用CopyMemeory把数据拷出来即可。
    如果用 Byref 相应类型 直接接收数据,不需要再拷贝数据。
      

  3.   

    最后两个参数,用Byval 还是 byref  随 你。