我使用此代码将文件作为资源附加到可执行文件:
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
答案 0 :(得分:2)
嵌入式资源并不意味着这么大,你显然已经达到了极限。
您应该将此文件作为独立文件与可执行文件一起提供。