0

我正在尝试从资源文件中读取一些 gif 和位图,我正在使用资源黑客将图像包含到 project.res 文件中,但我使用的代码似乎没有返回正确的图像数量。

下面是我想要做的

Stream := TResourceStream.Create(HInstance,'EMOTES','BIN');
GetMem(Buffer,40000);
Stream.Read(StreamCount,4);
For I := 0 To StreamCount - 1 Do Begin
  Stream.Read(StreamSize,4);
  Stream.Read(Buffer^,StreamSize);
  ImageStream := TMemoryStream.Create;
  ImageStream.Write(Buffer^,StreamSize);
  ImageStreamList.Add(ImageStream);
  ImageStream.Free;
End;
FreeMem(Buffer);
Stream.Free;
4

1 回答 1

3

您似乎正在尝试从资源加载 GIF 文件。像这样做:

Stream := TResourceStream.Create(HInstance, 'EMOTES', 'BIN');
try
  image.LoadFromStream(Stream);
finally
  Stream.Free;
end;

whereimage是类型的实例化对象TGIFImage

我真的无法弄清楚您的代码要做什么。也许您有多个图像。在这种情况下,为每个图像创建一个资源,每个资源具有不同的名称。请注意,我并不是指每张图像一个 .res 文件。您可以将所有图像放入一个 .rc 文件中,每个资源具有不同的名称。然后将该 .rc 文件编译为 .res 文件并链接到您的应用程序。

于 2013-02-09T16:35:19.943 回答