首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

如何返回多个pchar 呢?

2013-01-11 
怎么返回多个pchar 呢???// 这里的funTest函数应该怎么写 ???function funTes(……,abc:array of pchar):Boo

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

热点排行