参数和缓冲区的问题?
在VC中做的xboxdll.dll,在VB中调用,其中有个函数RecvMsgCSP,参数:
参数名 数据类型 说明
p_MaxRecv byte 最多接收到短消息的条数
p_Buffer void * 存放返回结果的缓冲区
函数返回接收到服务请求和发送结果的条数
VC的示例程序是用了两个结构Deliver和Result。
函数说明中函数作用是接收一条或多条Deliver和Result
三个结构Deliver、DeliverCSp、Result和两个联合Receive、ReceiveCSP.
如下:
struct Deliver
{
byte RecvType;
byte SrcNo[22];
byte TpUid;
byte TpUdhi;
byte Encoded;
word MsgLength;
byte Msg[162];
};
struct DeliverCSP
{
byte RecvType;
byte SrcNo[22];
byte SPNumber[22];
byte TpUid;
byte TpUdhi;
byte Encoded;
word MsgLength;
byte Msg[162];
};
struct Result
{
byte RecvType;
unsigned Oid;
unsigned CurrTimes;
byte SendTime[15];
byte SendMode[9];
byte DestNo[22];
byte State;
byte ChargeNo[22];
byte Reserve[111];
};
union Receive
{
struct Deliver st_Deliver;
struct Result st_Result;
};
union ReceiveCSP
{
struct DeliverCSP st_Deliver;
struct Result st_Result;
};
在VB模块中定义如下:
Declare Function RecvMsgCSP Lib "xboxdll.dll" (ByVal MaxRecv As Byte, ByVal Buffer As String) As Integer
VB中调用为i=RecvmsgCSP(10,Buffer)
如何在VB中分别把缓冲区中的每一条的数据分别读出来或读出Buffer的值?