在VC中做的xboxdll.dll,在VB中调用,其中有个函数RecvMsgCSP,参数:参数名                    数据类型           说明
p_MaxRecv                  byte             最多接收到短消息的条数
p_Buffer                   void *           存放返回结果的缓冲区
函数返回接收到服务请求和发送结果的条数
在VB模块中定义如下:
Declare Function RecvMsgCSP Lib "xboxdll.dll" (ByVal MaxRecv As Byte, ByVal Buffer As String) As Integer请问如何从上面的缓冲区中把分别把缓冲区中的每一条的数据分别读出来?

解决方案 »

  1.   

    VC的示例程序是用了两个结构Deliver和Result。函数说明中函数作用是接收一条或多条Deliver和Result
      

  2.   

    先把 p_Buffer 的值取回来,根据p_MaxRecv 可知道其中有几条记录,分析一下每条记录的起始与结束符,也有可能只有起始符,或只有结束符。按照这个规律就可取出每条记录。
      

  3.   

    呵呵~抱歉,怎么在VB中把p_Buffer的值取出来?在VB中RecvMsgCSP当做函数在使用,p_Buffer是个参数。我不会取啊~帮帮我~太谢谢了~
      

  4.   

    调用RecvMsgCSP函数时,定义一个与p_Buffer类型(数据发送格式)一致的变量,就能接收到p_Buffer中的数据
      

  5.   

    VC中用指针,那VB中对应的参数应该用数组对应
    把你的声明改为
    Declare Function RecvMsgCSP Lib "xboxdll.dll" (ByVal MaxRecv As Byte, ByVal Buffer As Variant ) As Integerdim Re as integer
    Dim Rdata(500) as Variant
    Re=RecvMsgCSP(MaxRecv,rdata(0))