System.SysUtils.TMarshaller 与 System.TMarshal

转自:http://www.cnblogs.com/del/archive/2013/06/10/3130974.html

TMarshaller(结构) 基于 TMarshal(是有一大堆的 class 方法组成的类) 实现.
TMarshaller 可以对缓存区进行自动(自动释放)安全地管理, TMarshal 也有前者没有的重要方法, 譬如: TMarshal.Copy() 方法.
有了它们, 以后关于内存缓冲区, 字符串转码等操作就更方便了.


{测试}
procedure TForm1.FormCreate(Sender: TObject);
var   M: TMarshaller;   pw: TPtrWrapper;   str: string;   bs: TBytes;
begin   bs := BytesOf('万一的 Delphi 博客');   pw := M.AllocMem(Length(bs));   TMarshal.Copy(bs, 0, pw, Length(bs));   str := TMarshal.ReadStringAsAnsi(pw);   ShowMessage(str);   pw := M.AsUtf8(str);   str := TMarshal.ReadStringAsUtf8(pw, -1);   ShowMessage(str);
end;
posted @ 2015-11-10 10:35  h2z  阅读(268)  评论(0编辑  收藏  举报