一个dll,c语言函数为:
typedef void * dbobject
typedef void * tbobject
int gettables(dbobject link, int *num, tbobject **tables)
释放函数 void freelist (int num, tbobject *tables)
num返回对象数量,tables返回长度为131072的指针组,只有前num有效。我转换到delphi为:
type MyPointerArray = array of Pointer;
Function gettables(link: Pointer; var num: integer; var tables: MyPointerArray):integer;
释放函数 procedure freelist(num: integer; tbobject: MyPointerArray);
上述函数运行起来时好时坏,报故障的时候很多,主要是在第二次调用该函数时故障,但也不是每次都故障。调用gettables前将tables长度设为0或131072都一样,似乎是内存管理有问题。
请各位帮忙看看问题何在?如何解决?谢谢!