|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.02.2014, 14:54 | #1 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
Получить имена ресурсов иконок из PE-файла
Добрый день!
Собственно сабж. Задача вычитки всех ресурсов типа RT_ICON уже решена, получаю HICON и ResID и массив LangIDs каждого ресурса RT_ICON. Но помимо этих данных у иконки есть имя, например 'MY_ICON1". Собственно вопрос: как получить это имя? Весь MSDN перерыл, правда только раздел "Resource Icons" и все функции, касающиеся ресурсов иконок. Но там тщетно. Получаю обозначенные 3 параметра с помощью трехзвенки функций-перечислений EnumResourceTypes, EnumResourceNames и EnumResourceLanguages. Ткните мордой, куда еще копать в плане получения имени ресурса? Может копать какой-то конкретный тип ресурса?
"ковыряю изнутри" (с)
|
13.02.2014, 15:03 | #2 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
13.02.2014, 15:12 | #3 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
она возвращает ресурс lpszName типа PChar, который после преобразования DWORD(lpszName) дает индекс ресурса в модуле. Простое присвоение строке iriName:=lpszName дает AV.
Имеете в виду тип реурса RT_STRING? Я подразумеваю, что именем ресурса все не просто в плане наличия множества языковых локалей, собственно для чего и нужна функция EnumResourceLanguages. Т.е. строковое имя ресурса может быть на разных языках, если варианты имен были указано при сборке ресурса. А вообще имя ресурса и его ID это не одно и тоже. Или я не прав?
"ковыряю изнутри" (с)
Последний раз редактировалось Stilet; 13.02.2014 в 15:57. |
13.02.2014, 15:15 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
нет, там написано что если тип передан не идентификатором готовым а строкой то он вернет строковое имя.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
13.02.2014, 15:17 | #5 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
поясните пожалуйста, то значит строкой?
Вот код: Код:
"ковыряю изнутри" (с)
|
13.02.2014, 15:54 | #6 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
Понимаю, что нужно вместо lpszName = PChar(Integer) подставить символ # в имя, чтобы возвращалось имя... Ситуация в том, что я не знаю имен ресурсов иконок. Поэтому делаю перечисление. Индексы ресурсов я получил. Как теперь извлечь имена этих же ресурсов?
Например, когда мы пишем rc-файл для компиляции ресурса, обычно делаем так: Код:
"ковыряю изнутри" (с)
|
14.02.2014, 10:28 | #8 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
14.02.2014, 10:42 | #9 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
Я читал этот кусок раз 30 наверно точно. Можно на строчке кода вызова функции показать? Я уже проверял, нет разницы между RT_ICON и '#3' в параметре lpszType. Тогда в чем разница?
"ковыряю изнутри" (с)
|
14.02.2014, 10:53 | #10 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Получить имена физических дисков. | 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 |