UpdateResource问题(内存不足)

时间:2011-06-02 17:28:43

标签: delphi resources out-of-memory

我使用此代码将文件作为资源附加到可执行文件:

interface
type
  TBuffer = Array [0 .. 0] of Byte;
  PBuffer = ^TBuffer;

Procedure AttachFile();
var
  DataLength: DWord;
  Data: PBuffer;
begin
  FS := TFileStream.Create(Filename, fmOpenRead);
  try
    FS.Seek(0, soFromBeginning);
    DataLength := FS.Size;
    GetMem(Data, DataLength);
    FS.Read(Data^, DataLength);
  finally
      FS.Free;
  end;
  UpdateResource(ResourceHandle, RT_RCDATA, pchar('ResName'),
    0, Data, DataLength);
  EndUpdateResource(ResourceHandle, false);
end;

问题是,当我想使用此代码附加Larg(例如1GB)文件时,我会收到此错误:Out of memory

我还尝试将我的文件拆分为较小的部分(例如:100MB)并使用for ring附加它但它仍然不起作用我收到Out of memory

1 个答案:

答案 0 :(得分:2)

嵌入式资源并不意味着这么大,你显然已经达到了极限。

您应该将此文件作为独立文件与可执行文件一起提供。