【求助】 VB.NET 传递 包含数组的结构体指针 参数

llhbtt llhbtt 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
外部的DLL文件,用到一个结构体,如下:

typedef struct _EXT_PACKET2
{
BYTE ucHeader;
BYTE ucLen;
BYTE ucData[18];
BYTE ucCrc;
}EB_IO_EXT_PACKET2, *PEB_IO_EXT_PACKET2;


有个函数原型如下:
HRESULT USBAdapterExtendSendAndReceive
(EXT_PACKET2* pSendPacket, EXT_PACKET2* pReceivePacket)



在VB.NET中,想使用上面的函数USBAdapterExtendSendAndReceive,

首先调用该DLL文件,并声明使用该函数

Declare Function myExtendSendAndReceiveRetryContinuous Lib "Adapter.dll" Alias _
"USBAdapterExtendSendAndReceive" (ByVal pSendPacket As Object, ByVal pReceivePacket As Object) As Integer


上面声明DLL中函数的方式,对于哪些不带参数的函数,用此方式已调用成功

但是,碰到调用结构体指针作为参数,就迷糊了,按照直接使用的方式出错了,错误信息如下:
ArgumentException was unhandled
Value does not fall within the expected range

实在不知道该怎么办了,所以向大家求救来了,

需要解决的问题如下:

1.在Declared中该函数的2个参数定义的是否正确?如果不对,该如何定义?

2. 将VB.NET中已定义好的结构体传递给函数USBAdapterExtendSendAndReceive,具体该如何实现??

3. 该结构体中有个数组变量,该如何处理??

...全文

相关推荐

评论 1
收藏 已收藏
分享
返回顶部
llhbtt
VB 16,718 成员 110,520 内容