我学习delphi 不久,现在需要用delphi 做个dll ,给其他的语言调用,我在dll 中 的函数的参数都是pchar 类型的,
例如 openprocess(name:pchar,args:pchar):boolean;
当我在其他语言中调用的时候,传入的参数是不是 name, args 首地址的指针???
还有就是两个Pchar 类型的值进行赋值的时候,我只想将一个pchar 里面的所有字符全部复制到另一个pchar 类型的字符中去,而不是赋地址。
请问一下,这两个问题该怎么处理啊?
例如 openprocess(name:pchar,args:pchar):boolean;
当我在其他语言中调用的时候,传入的参数是不是 name, args 首地址的指针???
还有就是两个Pchar 类型的值进行赋值的时候,我只想将一个pchar 里面的所有字符全部复制到另一个pchar 类型的字符中去,而不是赋地址。
请问一下,这两个问题该怎么处理啊?
1.传入的参数是指针
2.直接赋值即可 a:=b,a,b:pchar;
赋值StrCopy
但是当你在对 pchar 类型进行显式的字符串赋值时,编译器会自动为你分配空间,所以如何你想在两个PCHAR之间进行值的转换时,先得对他进行空间的分配。或者直接用个CHAR数组。代码如下。var
c:pchar;
c2:pchar;
begin
c:='123344';
getmem(c2,length(c));
CopyMemory(c2,c,Length(c));
ShowMessage(c2);
end;