vb.net怎么调用win32dll写的带有结构体数组参数的函数?
笑出丶强大 2018-07-19 09:52:50 win32结构体如下:
struct LibSpList
{
unsigned int id;
unsigned char name[64];
};
API原形int glaGetSpList(struct LibSpList *splt, unsigned int spnum);
vc下调用如下:
比如int spnum = 100;
struct LibSpList *splt = (struct LibSpList *)calloc(100, sizeof(struct LibSpList));
glaGetSpList(splt, 100);
这样可以正常调用并返回100个结构体数组数据。
现在我vb.net调用也是以100个为例子
Declare Function glaGetSpList Lib "XXX.dll" Alias "_glaGetSpList@8" (ByRef stLibSpList as tLibSpList, Byval spnum as UInteger)
dim stLibSpList(99) as tLibSpList //tLibSpList结构体已经在vb.net下定义
glaGetSpList(stLibSpList(0), 100);
现在的问题是这样调用结果只返回第一组下标为0的数据,后面的都未收到,请问怎么样才能完整收到100个结构体数组的数据?