一个简单的问题(30分)

  • 主题发起人 主题发起人 delphi4.0
  • 开始时间 开始时间
D

delphi4.0

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了一个函数参数要求是STRING,
在函数里面我要定义一个PCHAR类型,应如何正确的把STRING的内容
给PCHAR呢,处理结束后我要把pchar的内容返回到string中.
我对PASCAL的语法不了解,清执教
function D(Str:String):String;
var P:Pchar;
begin

<font color=red>//如何把str的内容放到 p 中使用? </font>
if (P <> nil) and (P^ <> #0) then

begin


end;

<font color=red>Result:=xxx;//如何从p中得到string</font>
end;
 
P := PCHAR(YOURSTRING);
result := StrPas(p);
 
来个强制类型转换
p:=point(str);
而D4会将pchar自动转换为string.
 
首先要注意的是你在定义PCHAR是并未给它分配内存,因此首先你要给它分配内存,
GetMem(P, Length(Str)+1);//注意PChar要有一个多余的结束标志字符
StrPCopy(P, Str);
//将Str内容付给P
Str := StrPas(P);
//将P内容付给Str
FreeMem(P);
//释放内存
Result := Str;
//返回
当然,如果你能够确定Str的长度,你可以预先分配内存
用 P: array [0..MaxLength] of Char;定义即可
 
多人接受答案了。
 
后退
顶部