![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| STRELOK2007 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 15.3.2008 Репутация: нет Всего: нет |
Приветствую!
Все таки разобрался, как устроены ресурсы, отвечающие за иконку в PE файлах. Параллельно понял устройство и *.ico файлов, ибо это практически одно и то-же. Разница в 2 байтах заголовка сущности. Это RT_GROUP_ICON с именем `MAINICON` и один или несколько ресурсов RT_ICON с целочисленным именем, скажем от 1 до n. Сделал свой класс. Который, идеально читает как *.ico файл, так и PE. Отображает количество сущностей, данные и т.д. Идеально сохраняет в *.ico файл, с любым количеством сущностей. Хоть 1, хоть 10. Контрольная сумма совпадает полностью, с оригинальной *.ico иконкой (которую, я потом поместил в PE-Донора, при компилляции). Вот с сохранением в ресурсы PE, собственно ради чего все это и писалось, проблема. Да будь одна неладна... Иконку из одной сущности, маленького размера, взятая либо с другого PE файла, либо с иконки - записывает. Иконку из 10 сущностей, красивую, Vista Ready... Не записывает. ResourceHacker отказывается показывать RT_GROUP_ICON и RT_ICON с 6 по 10. При этом, если не записывать иконки - ресурс RT_GROUP_ICON записывается отлично, побайтно (все контрольные суммы совпадают) равен аналогичному ресурсу в PE-Доноре иконке. При этом, иконки с 1 по 5 - записываются хорошо, правда не дошли руки проверить контрольные суммы. Собственно код: Второй вариант, первый был запутанный, вызывающий общие процедуры, использующиеся при сохранении в *.ico файл, и работающие 100% в том случае.
В чем может быть проблема? Ошибок никаких не возникает, значит все функции возвращают истину! Есть ли какие то ограничения у BeginUpdateResource, UpdateResource, EndUpdateResource? Я ведь понимаю правильно, что можно UpdateResource - вызывать столько раз, сколько нужно? Пробовал каждый раз вызывать эту "святую троицу", так вообще - все ресурсы затерлись к чертовой бабушке! Были только иконки с 6 по 10! (Что кстати странно...) |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |