vb.net中调用VC++6做的DLL的问题?

KEIGOliye 2003-07-13 06:28:34
在VC++6中做的xboxdll.dll,在VB.net中调用,其中有个函数RecvMsgCSP,参数:

参数名 数据类型 说明
p_MaxRecv byte 最多接收到短消息的条数
p_Buffer void * 存放返回结果的缓冲区
函数返回接收到服务请求和发送结果的条数

VC++6的示例程序是用了两个结构Deliver和Result。

函数说明中函数作用是接收一条或多条Deliver和Result

三个结构Deliver、DeliverCSp、Result和两个联合Receive、ReceiveCSP.
如下:
struct Deliver '结构Deliver,接收到一条服务请求的返回数据格式
{
byte RecvType;'长度1字节
byte SrcNo[22];'长度22字节
byte TpUid;'长度1字节
byte TpUdhi;'长度1字节
byte Encoded;'长度1字节
word MsgLength;'长度22字节
byte Msg[162];'长度161字节
};
struct DeliverCSP '结构DeliverCSP,接收到一条服务请求的返回数据的格式
{
byte RecvType;'长度1字节
byte SrcNo[22];'长度22字节
byte SPNumber[22];
byte TpUid;'长度1字节
byte TpUdhi;'长度1字节
byte Encoded;'长度1字节
word MsgLength;'长度2字节
byte Msg[162];'长度161字节
};
struct Result '结构Result,接收到一条发送结构的返回数据的格式
{
byte RecvType;'长度1字节
unsigned Oid;'长度4字节
unsigned CurrTimes;'长度4字节
byte SendTime[15];'长度15字节
byte SendMode[9];'长度9字节
byte DestNo[22];'长度字节22
byte State;'长度1字节
byte ChargeNo[22];'长度22字节
byte Reserve[111];
};

union Receive '联合Receive,由结构Deliver或者DeliverCSP和结构Result组成
{
struct Deliver st_Deliver;
struct Result st_Result;
};
union ReceiveCSP
{
struct DeliverCSP st_Deliver;
struct Result st_Result;
};

VC++6中的 数据类型定义:
typedef unsigned char *POINTER;
typedef unsigned short int UINT2;
typedef unsigned long int UINT4;
typedef unsigned char byte;
typedef unsigned short word;


在VB.net中定义如下:
<DllImport("xboxdll.dll")> Public Shared Function RecvMsgCSP(ByVal MaxRecv As Byte,

ByVal Buffer As String) As Integer


如何在VB.net中分别把缓冲区中的每一条的数据分别读出来或分别读出Buffer的值?

...全文
86 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧