char**参数传递----汇总再问
我先说说我的思路。错误的地方帮忙指点。
要实现的功能:delphi7要调用vc写的dll,dll中参数类型为char**。
dll中的声明:
[解决办法]
arrMedialpm[0]:='101.1.110.136'+char(0);
arrMedialpa[0]:='101.1.110.137'+char(0);
你确定调用ML_I的时候, arrMedialpm还有效吗, 即内存没有有被释放掉.或者你传入的指针是否正确?
提示是地址访问错误, 你可以在dll中的 ML_I 函数中输出 指针值看看指针是否合法.
[解决办法]
你这样使用的话,
arrGroupNo:PPCharArray;//array[0..1] of PChar;
arrMedialpm:PPCharArray;//array[0..1] of PChar;
这两个变量传入之前分配空间了吗?
你应该这样使用:
arrGroupNo:TPCharArray;
arrMedialpm:TPCharArray;
ML_I(@arrGroupNo, @arrMedialpm, ...);
我测试了一下,按照你给出的C声明写了一个DLL,用Delphi调用是正常的。
[解决办法]
+1