声明
sTemp : stirng;
pTemp : pChar;pchar 转 string1 StrpCopy(pTemp,sTemp);
2 sTemp := pTemp;
3 sTemp := String(pTemp);string 转 pchar1 pTemp := pchar(sTemp);请高手说明一下每种转换方法的不同这处.
请朋友加上其它的类型转换(int转string)等,完善此贴.
sTemp : stirng;
pTemp : pChar;pchar 转 string1 StrpCopy(pTemp,sTemp);
2 sTemp := pTemp;
3 sTemp := String(pTemp);string 转 pchar1 pTemp := pchar(sTemp);请高手说明一下每种转换方法的不同这处.
请朋友加上其它的类型转换(int转string)等,完善此贴.
sTemp := pTemp; 和 sTemp := String(pTemp); 完全等价在最终生成的EXE文件中, 它们对应的代码也是相同的例如:
procedure A(sTemp: String; pTemp: PChar);
begin
sTemp := pTemp;
sTemp := String(pTemp);
end;sTemp := pTemp; 和 sTemp := String(pTemp); 对应的汇编代码都是:
lea eax, [ebp-$04] //sTemp
mov edx, [ebp-$08] //pTemp
call @LStrFromPChar
s: string;
p: PChar;转换方式:1. PChar转string
s := p;2. string转PChar
p := PChar(s);从语法上来看,转换很简单,实际上编译器做了很多工作。具体可以看看《Delphi源代码分析》。