【求助】 VB.NET 传递 包含数组的结构体指针 参数
外部的DLL文件,用到一个结构体,如下:
有个函数原型如下:
在VB.NET中,想使用上面的函数USBAdapterExtendSendAndReceive,
首先调用该DLL文件,并声明使用该函数
上面声明DLL中函数的方式,对于哪些不带参数的函数,用此方式已调用成功
但是,碰到调用结构体指针作为参数,就迷糊了,按照直接使用的方式出错了,错误信息如下:
ArgumentException was unhandled
Value does not fall within the expected range
实在不知道该怎么办了,所以向大家求救来了,
需要解决的问题如下:
1.在Declared中该函数的2个参数定义的是否正确?如果不对,该如何定义?
2. 将VB.NET中已定义好的结构体传递给函数USBAdapterExtendSendAndReceive,具体该如何实现??
3. 该结构体中有个数组变量,该如何处理??
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. 该结构体中有个数组变量,该如何处理??
...全文
相关推荐
VB和VC制作的dll中参数是结构体的传递
VB调用VC 生成的dll里面的参数传递为结构体。
VB和VC 结构体Dll参数传递
VB和VC 结构体Dll参数传递,VB中的结构体作为参数,传递VC中的结构体dll
VB.NET二维数组快速排序(更新)
VB.NET二维数组快速排序(更新) 'OldArrays(),为排序二维数组;NewArrays(),为存放结果数组,SortColumnsOrOrders(),传递排序参数数组,偶数个为排序列号,奇数为升降序,0为升序,1为降序;FieldRow,是否有字段行(第一行),true为有字段行,false为无字段行,默认为无字段行;TotalRow,是否有统计行(最后一行),true为有统计行,false为无统计行,默认为无统计行;
vb调用dll时数组类型参数问题
vb调用dll时,如果碰到数组类型参数,存在如何传入的问题。本例子解决了这个问题。
vb.net多线程通过Deletgrate委托调用传递参数.rar
委托调用多线程传递参数vb.net vb.net多线程通过Deletgrate委托调用传递参数 实现多线程调用中变量和参数的传入和传出。 原创代码,亲测有效!


