![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кто работал с ресурсами, помогите ... [D6, WinXP]
star © (2002-09-02 21:09:00)Ничего не понимаю! Не могу найти в файле ресурс, хотя он там ЕСТЬ!
Смысл такой: добавляю к .exe-файлу ресурсы:
Module:=BeginUpdateResource ("Install.exe",False);
Stream:=TMemoryStream.Create;
Stream.Clear;
Stream.LoadFromFile("aaa.ini");
UpdateResource (Module,"File","install",0,Stream.Memory,Stream.Size);
EndUpdateResource (Module,False);
Ресурс записывается в файл, любым просмотрщиком ресурсов (даже тем, что идет в примерах дельфов) его можно просмотреть,
но когда я его пытаюсь прочитать - ничего. Не могу его найти!
Module:=LoadLibrary ("Install.exe");
ResInfo:=FindResource (Module,"install","File");
If ResInfo=0 then ShowMessage ("Ресурс не найден.");
Так вот, модуль загружается без ошибок, а FindResource возвращает ноль! Бился два дня - ничего не родил. Чего только не перепробовал!
Ресурс есть точно, а найти его - ни в какую!
Причем ResourceHacker выгружает этот ресурс без проблем, не ругается.
Пытался разобраться в коде ResourceViewer"а, который идет с дельфами - ничего не понял.
Может у кого есть какие идеи? Что это за фигня?
Star (2002-09-04 22:46:00) [1]Пойду мучиться дальше: когда я имя ресурса указывал как "0" (просто одна цифра ноль), ресурс не находился ...
В общем, уже прогресс, спасибо за помощь...
Star (2002-09-04 22:44:00) [2]Ну как объяснить этот МАРАЗМ! Только что, чисто случайно выяснил в чем дело!
Оказывается, в UpdateResource нужно указывать название ресурса и его тип БОЛЬШИМИ БУКВАМИ! Только тогда FindResource его находит! Причем в FindResource имя и тип можно писать маленькими!
Ничего не понимаю...
Star (2002-09-04 21:05:00) [3]Не пробовал, но сейчас попробую (хотя не верится чтой-то)...
Игорь Шевченко (2002-09-04 10:27:00) [4]А не мудрствуя лукаво попробовать "File" на стандартный RT_RCDATA
заменить ?
Star (2002-09-03 20:43:00) [5]Пробовал! EnumResourceTypes возвращает тип ресурса - "File", а когда пытаюсь сделать EnumResourceNames по типу "File" - ресурс не найден!
Игорь Шевченко (2002-09-03 13:25:00) [6]EnumResourceTypes, EnumResourceNames не поможет ?