我学习delphi 不久,现在需要用delphi 做个dll ,给其他的语言调用,我在dll 中 的函数的参数都是pchar 类型的,
例如  openprocess(name:pchar,args:pchar):boolean;
当我在其他语言中调用的时候,传入的参数是不是 name, args 首地址的指针???
还有就是两个Pchar 类型的值进行赋值的时候,我只想将一个pchar 里面的所有字符全部复制到另一个pchar 类型的字符中去,而不是赋地址。
请问一下,这两个问题该怎么处理啊?

解决方案 »

  1.   

    会c语言么?PChar(PAnsiChar)和char*的意思是相同的,复制内容的方式也和c一样,malloc->strcpy,GetMem->StrCopy
      

  2.   


    1.传入的参数是指针
    2.直接赋值即可 a:=b,a,b:pchar;
      

  3.   

    传入的参数是指针
    赋值StrCopy
      

  4.   

    首先,因为pchar 是指针,所以在使用时必须先给他分配空间,像C++一样: char str[100];
    但是当你在对 pchar 类型进行显式的字符串赋值时,编译器会自动为你分配空间,所以如何你想在两个PCHAR之间进行值的转换时,先得对他进行空间的分配。或者直接用个CHAR数组。代码如下。var
      c:pchar;
      c2:pchar;
    begin
      c:='123344';
      getmem(c2,length(c));
      CopyMemory(c2,c,Length(c));
      ShowMessage(c2);
    end;