最近看了一个VC的Demo,发现这样定义了一个指针 
char **Str1
不知道在Delphi中应该怎样做相应的定义?
如果要把这个变量的值赋给一个字符串应该怎么传值?希望各位指点一下,小弟不胜感激。

解决方案 »

  1.   

    还有下面这几句代码应该如何变成Delphi代码?char  sVoxName[20];
    char  **CHNamesP;
    int   cnt;CHNamesP = ATDX_CHNAMES(iDevH);//从一个函数得到值
    for (int cnt=0; cnt < iSubDevNum; cnt++) 
      strcpy(sVoxName, *(CHNamesP + cnt)); //尤其是这一句
      

  2.   

    我想**CHNamesP是指向字符指针的指针,即字符串指针,也可以说是字符串数组吧。
      

  3.   

    当成2维字符串吧。
    sVoxName : array of [0..19] char;
    CHNamesP : array of String;
    cnt      : integerSetLength( CHNamesP, iDevH );
    for cnt := 0 0 to iSubDevNum do
    begin
        StrCopy( sVoxName, CHNamesp[cnt]); // 表示拷贝第 cnt 个字符串到 sVoxName
    end;
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var sVoxName:Pchar;
        CHNameP:PString;
        cnt:integer;
    begin
      GetMem(sVoxName,20);
      CHNamesP:=ATDX_CHNAMES(iDevH);
      for cnt:=0 to iSubDevNum-1 do
      begin
        strcopy(sVoxName,(CHNameP+i)^);
        inc(cnt);
      end;
      .................................
      FreeMem(sVoxName);
    end
    可能就是这样吧。
      

  5.   

    //try
    type
      PPChar = ^PChar;
    var
      sVoxName: array[0..19] of Char;
      CHNamesP: PPChar;
      cnt: Integer;
      C: PChar;
    begin
    //....
      for cnt := 0 to iSubDevNum - 1 do
        StrCopy(sVoxName, PPChar((Integer(CHNamesP) + cnt))^);
    //....
    end;