W
wanbb
Unregistered / Unconfirmed
GUEST, unregistred user!
我的DLL中有个函数: Function T(achar
out bchar):integer;
其中a是调用者给的数据,b是我的DLL返回给调用者的数据
[red]我想问a是否要分配内存及释放?[/red]
还有我的b是这样的:
Function T(achar
out bchar):integer;
var S:string;
begin
S:='983hsdouasdhfiehf8er7hwi'
//可能有很长的字符(26000)是否可以呢?
b:=AllocMem(Length(S)+1);
b:=strpcopy(b,S);
freemem(b);
Result:=0;
end;
可以调用运行,但是我发现去掉freemem(b)这句才能正常显示出数据,而加上后就是乱码,
我想我要的数据在b指向的地址里,但又freemem(b)了那当然就没有数据了,可是在DLL中用了
Pchar就要分配内存,我该怎样将b传出去呢? 请高手解答 谢谢!
out bchar):integer;
其中a是调用者给的数据,b是我的DLL返回给调用者的数据
[red]我想问a是否要分配内存及释放?[/red]
还有我的b是这样的:
Function T(achar
out bchar):integer;
var S:string;
begin
S:='983hsdouasdhfiehf8er7hwi'
//可能有很长的字符(26000)是否可以呢?
b:=AllocMem(Length(S)+1);
b:=strpcopy(b,S);
freemem(b);
Result:=0;
end;
可以调用运行,但是我发现去掉freemem(b)这句才能正常显示出数据,而加上后就是乱码,
我想我要的数据在b指向的地址里,但又freemem(b)了那当然就没有数据了,可是在DLL中用了
Pchar就要分配内存,我该怎样将b传出去呢? 请高手解答 谢谢!