怎么返回多个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;