问个问题啊``在c++里的LPCTSTR*的类型,在delphi里怎样写?我要在delphi里传到c++里去的。
情况是这样:我要在delphi里调用c++写的dll的一个函数,这个函数有一个参数的类型是LPCTSTR*,就是一个指向多个字符串的数组,在delphi里面要怎样写才能正确传进函数里去?

解决方案 »

  1.   

    c++
     char *delphi:
     pchar
      

  2.   

    是啊``了解``那么c++的char**呢?在delphi里是怎样?
      

  3.   

    摘自:http://archlord.blog.hexun.com/7293951_d.html////////////////////如何理解LPCTSTR类型?
    L表示long指针这是为了兼容Windows 3.1等16位操作系统遗留下来的, 在win32中以及其他的32为操作系统中, long指针和near指针及far修饰符都是为了兼容的作用。没有实际意义。P表示这是一个指针
    C表示是一个常量
    T表示在Win32环境中, 有一个_T宏这个宏用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏, 那么这个字符或者字符串将被作为UNICODE字符串, 否则就是标准的ANSI字符串。
    STR表示这个变量是一个字符串所以LPCTSTR就表示一个指向常固定地址的可以根据一些宏定义改变语义的字符串。
    同样, LPCSTR就只能是一个ANSI字符串, 在程序中我们大部分时间要使用带T的类型定义。LPCTSTR == const TCHAR */////////////////////////////C++ LPCTSTR  -> Delphi  const PChar;
      

  4.   

    - -其实我是我学c++的。。是不懂delphi的写法才来的。。
    我的问题还是没有解决``在delphi里面,类似c++的LPCTSTR*,即指向字符串指针的指针,是怎样写的?
      

  5.   

    //c++的char**
    在Delphi中可以这样,定义一个新类型
    type
      PPChar = ^PChar;
      

  6.   

    var
      ptr:^Pchar;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      pc:PChar;
    begin
      GetMem(pc,100);
      StrCopy(pc,'Hello World');
      ptr:=@pc;
      ShowMessage(ptr^);
      FreeMem(pc);
    end;
      

  7.   

    但是问题是,我这里是用宽字符的,即我这写的是^PWideChar,但我要怎样才能在程序里,构建一个指向字符串指针?
    我想的是这样,不知可行不,可行的话谁能给出代码,我不懂delphi
    1.定一个pointer
    2.再求出所有字符串的长度n
    3.再申请一段长度为n的内存,然后把这些字符串一个一个的放到这段内存里
      

  8.   

    还差一步,zhangl_cn(和尚-修行)你的代码只设了一个字符串进去,设两个呢?应该如何?
      

  9.   

    如果字符串个数确定的话可以用数组
    var
      arrPChar:array[0..10] of Pchar;
    或者动态申请空间