string是自动管理内存大小和分配,而Pchar需要手动分配内存手动释放,显然string要比pchar的使用要方便一些,但是win api的许多参数需要pchar类型,所以应该学会pchar的使用技术。
下面的例子演示了使用PChar和string类型时的内存分配技术:
var P1 , P2 : PChar ; S1 , S2 : string ; begin P1 : = StrAlloc ( 64 * SizeOf ( Char ) ) ; / / P1指向一个分配了63个字符的缓冲区 StrPCopy(P1,'Delphi 5'); / /复制一组字母到P 1 S1:='Developer's Guide'; / /在S1中放几个字母 P2 : = StrNew ( PChar ( S1 ) ) ; / / P2指向S1的备份 StrCat ( P1 , P2 ) ; / /连接P1和P2 S2:=P1; //S2现在为'Delphi 5 Developer's Guide’ StrDispose ( P1 ) ; / /清除P1和P2的缓冲区。 StrDispose ( P2 ) ; end.