delphi调用DLL简单问题,请教各位
在dll中定义一个函数:
int getAll(int& iTime,char* str)
{
改变了iTime的值和str的内容
}
delphi中:
function getAll(var iTime:Integer;str:PChar):Integer;stdcall;external 'mydll.dll '
为什么我调用之后,只有iTime可以取到改变后的值,而str不行?
我试过定义为 var str:PChar也不行。
[解决办法]
函数定义基本没错,可能有两个问题
1.由于C的缺省调用方式为cdecl的,如果原C函数没有特别的申明,改stdcall为cdecl试试
2.估计str要在你的程序中申请内存,先用GetMem试试(除非你调入的是array[0..xxx] of char)