delphi – 将流写入RCDATA资源

前端之家收集整理的这篇文章主要介绍了delphi – 将流写入RCDATA资源前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在delphi中,如何将MemoryStream写入数据资源?
procedure StringtoRes (filename:string; Inputstream: TMemoryStream);
var
 hUpdate: THandle;
begin
 hUpdate := BeginUpdateResource(PChar(filename),True);
 UpdateResource(hUpdate,RT_RCDATA,'ID',LANG_NEUTRAL,InputStream,InputStream.Size);
 EndUpdateResource(hUpdate,False);
end;

这段代码给了我一个访问冲突和强烈的不适感,因为我甚至不知道从哪里开始修复它.有没有人?

解决方法

在UpdateResource()的lpData参数中,您需要传递TMemoryStream.Memory属性的值而不是TMemoryStream对象指针的值,例如:
procedure StringtoRes (const FileName: string; Inputstream: TMemoryStream); 
var 
  hUpdate: THandle; 
begin 
  hUpdate := BeginUpdateResource(PChar(FileName),True); 
  try
    UpdateResource(hUpdate,InputStream.Memory,InputStream.Size); 
  finally
    EndUpdateResource(hUpdate,False); 
  end;
end;
原文链接:https://www.f2er.com/delphi/101202.html

猜你在找的Delphi相关文章