搞了许久,原来不是FPC问题,而是我用的编辑器保存代码时用的是Utf-8格式,当FPC在生成代码时会先自动把源代码文件以ASII格式读取,utf-8下的中文就变成了乱码,程序执行时显示的就是这些乱码了,需要的只是让编辑器保存代码格式为Ansii罢了。
另外,FPC里面string转换为PChar其实很容易,看下面的代码就清楚了。
program test;
{$APPTYPE GUI}
uses
windows;
var
i:string;
c:PChar;
begin
i:='中文'#0;
c:=@i[1];//就这一句
MessageBox(0,c,'标题',MB_OK);
end.