![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема со вставкой ресурсов в ехе-файл [D5, D6, D7, WinXP]
Jetus © (2004-09-02 00:31:00)Мастера, помогите решить такую проблему.
Я при помощи функций BeginUpdateResource(), UpdateResource() и EndUpdateResource занёс в ехе-шник свою иконку. Потом я просмотрел этот ехе-шник при помощи ResHacker'a. Иконка (сам ресурс) там появилась, но не отображалась, как остальные. В чём же проблема?
Вот кусок кода, который у меня всё делает:
procedure TForm1.Button1Click(Sender: TObject);
var
FileWnd : THandle;
Ico: TIcon;
begin
FileWnd := BeginUpdateResource('C:\nine\nine.exe', FALSE); // Наш ехе-шник
Ico := TIcon.Create;
Ico.LoadFromFile('C:\my_icon.ico'); // Моя иконка
if UpdateResource(FileWnd, RT_ICON, '1', LANG_RUSSIAN, Ico, 766) then
Label1.Caption := 'Success!' else Label1.Caption := 'Failed...';
EndUpdateResource(FileWnd, FALSE);
Ico.Free;
end;
766 - это размер моей иконки.
С текстом у меня всё нормально, а вот с иконкай лажа. В чём же баг?
Jetus (2004-09-03 01:04:00) [1]Попробовал - ситуация не изменилась: ресурс появляется, но не просматривается, как остальные иконки-ресурсы :( Какие еще будут предложения?
Digitman (2004-09-02 08:28:00) [2]
> В чём же баг?
ms: TMemoryStream;
...
Ico.LoadFromFile('C:\my_icon.ico');
ms := TMemoryStream.Create;
try
Ico.SaveToStream(ms);
if UpdateResource(FileWnd, RT_ICON, '1', LANG_RUSSIAN, ms.Memory, ms.Size) then ...
finally
ms.Free;
end;