Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Кто работал с ресурсами, помогите ... [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 не поможет ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо