function PP_GetTargetName(var Str:PChar):Integer;
begin
try
Result:=1;
Str:=PChar('小秘书');
except
Result:=0;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var s:String;
begin
PP_GetTargetName(请问该处该给什么样参数);
end;
begin
try
Result:=1;
Str:=PChar('小秘书');
except
Result:=0;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var s:String;
begin
PP_GetTargetName(请问该处该给什么样参数);
end;
不行啊,编译时出错
[Error] Unit1.pas(44): Constant object cannot be passed as var parameter
PP_GetTargetName( pch ); //应该传一个变参...
procedure PP_GetTargetName(var Str:PChar;Var Result:integer=0);
begin
try
Result:=1;
Str:=PChar('小秘书');
except
Result:=0;
end;
end;
另外function PP_GetTargetName(var Str:PChar):Integer;的写法也有问题,PChar本身是个指针,不需要varprocedure TForm1.Button1Click(Sender: TObject);
var s:String;
tempP:Array[0..127]of char; //不要定义成PCHAR,否则内存空间没有分配
begin
tempP:=PChar('小秘书');
PP_GetTargetName(tempP);
end