Delphi 利用TMemoryStream对象存取缓存


本文整理自网络,侵删。

 
在Delphi中怎么样才能非常容易的整合多个指针指向的缓存呢?利用Move函数可以做到这一点,但是很不好控制,容易造成内存泄漏等情况。最方便的做法是使用TMemoryStream对象:
var
  TempMem:TMemoryStream;
  P1,P2:Pointer;
begin
  P1:=StrNew('123456');
  P2:=StrNew('789');
  OutputDebugString(PChar(p1));
  OutputDebugString(PChar(p2));
  TempMem:=TMemoryStream.Create;
  try
    TempMem.Position:=0;
    TempMem.size:=20;//设置TempMem对象Memory属性空间的大小
    TempMem.WriteBuffer(P1^,12);//注意,WriteBuffer是往对象内部的Memory属性中写入数据;ReadBuffer方法是往传入参数的空间中写入数据
    TempMem.WriteBuffer(P2^,6);
    OutputDebugString(PChar(TempMem.Memory));
  finally
    TempMem.Free;
  end;
  StrDispose(PChar(p2));
  StrDispose(PChar(p1));
end;

来源:http://blog.sina.com.cn/s/blog_140f86bd70102xues.html

相关阅读 >>

Delphi cpu窗口的扩展学习

Delphi中的unicode转换

Delphi firedac 的recordcount 相关测试 记录

Delphi extctrls.frame3d

Delphi 部分操作文件函数

Delphi 向其他程序发送模拟按键

Delphi 遍历控件

Delphi 中使用微软全文翻译的小例子

Delphi的idhttp报iohandler value is not valid错误的原因

汇编文档进制及进制的转换

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...