0
我想從資源文件中讀取一些gif和位圖,我使用資源黑客將圖像包含到project.res文件中,但我使用的代碼似乎並沒有返回正確的圖像數。從TResourceStream讀取
下面是什麼,我試圖做
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;
那麼,究竟是什麼問題?什麼是輸入,什麼是預期輸出,什麼是實際輸出? FWIW如果你想包含資源,那麼你不需要使用GUI程序資源黑客。現代版本的Delphi IDE爲您編譯資源,舊版本使用brcc32。 – 2013-02-09 16:14:34
我在.res文件中添加了一個gif,其中「BIN」作爲資源類型,「EMOTES」作爲資源名稱,所以我期望streamcount爲1,但streamcount值是一些隨機數,最終導致訪問衝突錯誤。我正在使用Delphi 7 – 2013-02-09 16:21:48
什麼是流計數?你爲什麼期望gif文件的前4個字節是$ 00000001?當然你會得到GIF標題。 '40000'有什麼特別之處? – 2013-02-09 16:22:52