|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.02.2014, 16:53 | #21 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
Вот ресурсовый dll-файл:
resource.rar
"ковыряю изнутри" (с)
|
16.02.2014, 16:22 | #22 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Ну как я и думал - у RT_ICON имен нет, у RT_GROUP_ICON имена...
|
16.02.2014, 22:23 | #23 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
Поясните пожалуйста. Можно кусок кода, поясняющий суть?
"ковыряю изнутри" (с)
|
17.02.2014, 11:12 | #24 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Есть два вида ресурсов - RT_ICON и RT_GROUP_ICON.
Вы смотрите на RT_ICON - там имен нет. См. сообщение #20 |
19.02.2014, 11:39 | #25 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
waleri, огромное спасибо! Точно заработало! Правда не представляю откуда вообще берется данная информация. Я основывался на статье по этой ссылке: resources.
И тогда возникает вопрос: как правильно соотнести индекс ресурса иконки RT_ICON с именем этого ресурса RT_GROUP_ICON? Фактически, я вынужден теперь вызывать дважды Код:
"ковыряю изнутри" (с)
Последний раз редактировалось 3D Hunter; 19.02.2014 в 11:41. |
19.02.2014, 12:18 | #26 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Каждая запись в RT_GROUP_ICON содержит ID из RT_ICON.
Ref: http://msdn.microsoft.com/en-us/library/ms997538.aspx |
19.02.2014, 12:59 | #27 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
Все, разобрался! Получилось. Спасибо огромное за помощь!
И последний вопрос по этой теме, скорее символичный. А может и нет. У перечисления имен ресурсов есть функция перечисления языковых локалей (LangIDs). Вопрос: изъятые таким образом имена ресурсов иконок могут иметь имена на других языках? По какому критерию извлекается юникод-строка с именем ресурса? Используется ли языковая локаль ресурса?
"ковыряю изнутри" (с)
|
19.02.2014, 14:39 | #28 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Юникод строка с именем извлекается по критерию "тип" ресурса. Далее для ресурса этого типа и с этим именем есть вариации языков.
Каждый ресурс идентифицируется по типу, имени и языку, другое дело, что при работе с ресурсами языком мы обычно не занимаемся, т.е. мы принимаем, что все ресурсы с одним типом и именем это один и тот же ресурс. |
20.02.2014, 11:04 | #29 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
И возник снов вопрос: при попытке считывания shell32.dll на 17й иконке выдает ошибку доступа к памяти, а точнее ее lpszName=0 вместо ожидаемого 17. И все последующие хэндлы иконок RT_ICON равны нулю тоже.
Вот код: Код:
"ковыряю изнутри" (с)
|
21.02.2014, 08:58 | #30 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
Копаю уже второй день и ничего не накопал. Вот вроде же все верно построено в коде. На мелких ресурсных модулях работает нормально, а на "эталонном" shell32.dll отказывается. В чем может быть особенность? Почему после 16го индекса ресурса RT_GROUP_ICON сразу идет ресурс с индексом #0, а после него уже 17, 18...и до конца, но после нуля все хендлы иконок RT_ICON, возвращаемых методом
Код:
"ковыряю изнутри" (с)
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Получить имена физических дисков. | Ant-kul | C# (си шарп) | 2 | 16.12.2012 15:08 |
Получить имена всех листов в книге | Temnota | Microsoft Office Excel | 6 | 26.12.2009 07:36 |
Получить список ресурсов и сохранить их отдельно | Alex Cones | Общие вопросы Delphi | 16 | 14.11.2009 13:45 |
Получить HWND рабочего стола без иконок | Son | Win Api | 4 | 24.06.2009 15:57 |
Получить доменные имена | lamerx | Работа с сетью в Delphi | 1 | 10.10.2008 16:57 |