Получение значков из DLL - PullRequest
0 голосов
/ 14 июля 2009

Я получаю следующее из сторонней библиотеки (один пример):

@% SystemRoot% \ SomePath \ SomeFile.Dll, -203

Из контекста я знаю, что это значок. У меня вопрос, как бы я взял эти «адреса» и фактически вытащил данные?

В связанной заметке я также хотел бы знать, как лучше всего извлечь значок (из оболочки) из ванильного EXE-файла.

Я работаю в C #, но я также могу работать с примерами на C или C ++.

Ответы [ 2 ]

2 голосов
/ 14 июля 2009

При использовании EXE вы должны вызвать API-функцию SHGetFileInfo и указать, что вам нужен значок. Эта функция будет проверять все возможные способы предоставления значка (в файле, через расширения оболочки и т. Д. И т. Д.).

Для того, что вы получаете из сторонней библиотеки, вы можете вызвать API-функцию ExtractIconEx, передавая имя файла (первая часть) и индекс (вторая часть).

0 голосов
/ 14 июля 2009

Если вы используете отражатель , вы можете точно видеть, где хранятся вещи. (Если это совместимая DLL). Это помогло мне в прошлом получить дополнительные ресурсы.

...