我正在尝试从资源文件中读取一些gif和bitmaps,我正在使用资源黑客将图像包含到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;
答案 0 :(得分:3)
您似乎正在尝试从资源加载GIF文件。这样做:
Stream := TResourceStream.Create(HInstance, 'EMOTES', 'BIN');
try
image.LoadFromStream(Stream);
finally
Stream.Free;
end;
其中image
是TGIFImage
类型的实例化对象。
我真的无法弄清楚你的代码想要做什么。也许你有多个图像。在这种情况下,为每个图像创建一个资源,每个资源具有不同的名称。请注意,我并不是指每个图像有一个.res文件。您可以将所有图像放入单个.rc文件中,每个资源具有不同的名称。然后将.rc文件编译为.res文件并链接到您的应用程序。