读书人

如何返回多个pchar 呢?

发布时间: 2013-01-11 11:57:35 作者: rapoo

怎么返回多个pchar 呢???
// 这里的 funTest函数应该怎么写 ???

function funTes(…… ,abc:array of pchar):Boolean;stdcall;
begin

end;

如 我传入
var
aa:array of pchar;
i:integer;
begin

funTest(aa,['aaa','bbb','ccc']);

for i:=0 to length(aa)-1 do
begin
showmessage(aa[i])
end;
// 这里的 funTest函数应该怎么写 ???
end;


因为要把函数放在dll里,所以才用pchar的…… 那位大牛,帮我写写吧, 谢谢了

[解决办法]


type
TMyArr = array of pchar;
{$R *.dfm}
function funTest(var aa : TMyArr; abc:array of pchar):Boolean;stdcall;
var
i : Integer;
snewStr : string;
begin
SetLength(aa, length(abc));

for I := Low(abc) to High(abc) do
begin
snewStr := StrPas(abc[i]) + '_funTest';
aa[i] := GetMemory(length(snewStr) * 2); //分配内存
StrPCopy(aa[i], snewStr); //将值复制到分配的内存中。
end;
end;

procedure TForm11.btn1Click(Sender: TObject);
var
aa:TMyArr;
i:integer;
begin

funTest(aa,['aaa','bbbb','ccc']);

for i := Low(aa) to High(aa) do
showmessage(aa[i]); //显示


for i :=Low(aa) to High(aa) do
FreeMemory(aa[i]); //释放内存

end;

读书人网 >.NET

热点推荐