Как из exe файла дастать иконку |
Здравствуйте, гость ( Вход | Регистрация )
Как из exe файла дастать иконку |
Razerio |
16.1.2013, 21:47
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 13 Регистрация: 16.1.2013 Пользователь №: 3677 Спасибо сказали: 1 раз(а) Репутация: 0 |
Пытаюсь в винде (Win7x64) достать иконку из exe файла. В принципе всё работает:
Вот только таким методом можно получить иконку размером до 32x32. Тоесть даже если вписать ".pixmap(64, 64).", то всё-равно будет возвращено 32x32 пикселя. (Разумеется в exe файле есть иконка 64x64). Отсюда и вопрос — как вытаскивать большие иконки? P.S. На Дельфях помню проблему решил используя WinAPI функцию PrivateExtractIcons
Вот только как PrivateExtractIcons в Qt объявить не знаю(( |
|
|
sidsukana |
17.1.2013, 6:38
Сообщение
#2
|
Участник Группа: Участник Сообщений: 158 Регистрация: 23.12.2010 Из: Челябинск Пользователь №: 2296 Спасибо сказали: 10 раз(а) Репутация: 2 |
Пытаюсь в винде (Win7x64) достать иконку из exe файла. В принципе всё работает:
Вот только таким методом можно получить иконку размером до 32x32. Тоесть даже если вписать ".pixmap(64, 64).", то всё-равно будет возвращено 32x32 пикселя. (Разумеется в exe файле есть иконка 64x64). Отсюда и вопрос — как вытаскивать большие иконки? P.S. На Дельфях помню проблему решил используя WinAPI функцию PrivateExtractIcons
Вот только как PrivateExtractIcons в Qt объявить не знаю(( Чем WinAPI на дельфях отличается от C++ ? Ничем практически, ищите такую же функцию WinAPI на C++ вот она http://msdn.microsoft.com/ru-ru/library/wi...5(v=vs.85).aspx |
|
|
Razerio |
17.1.2013, 9:47
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 13 Регистрация: 16.1.2013 Пользователь №: 3677 Спасибо сказали: 1 раз(а) Репутация: 0 |
sidsukana, так проблема банальна. Я просто не знаю как её использовать. Например:
Что я не правильно сделал? |
|
|
Алексей1153 |
17.1.2013, 10:53
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
так там далеко не QString , а (в случае W) - wchar_t*
вызов PrivateExtractIconsW(L"somefile.exe", и ещё неплохо бы указать WINAPI для порядка укладывания в стек ) определено как #define WINAPI __stdcall в итоге, как-то так
ещё момент - по идее, подключить бы такие заголовки #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <Winuser.h> да вызывать функцию сразу ::PrivateExtractIconsW(...); |
|
|
Razerio |
17.1.2013, 11:32
Сообщение
#5
|
Студент Группа: Новичок Сообщений: 13 Регистрация: 16.1.2013 Пользователь №: 3677 Спасибо сказали: 1 раз(а) Репутация: 0 |
Алексей1153, большое спасибо, всё заработало:
А насчёт подключения заголовка "Winuser.h", то это я пробовал. Вот только функции PrivateExtractIcons там почему то нету. По этому и пришлось городить костыли с явной загрузкой либы и т.д. |
|
|
Алексей1153 |
17.1.2013, 11:39
Сообщение
#6
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Вот только функции PrivateExtractIcons там почему то нету вполне возможно: Цитата This function was not included in the SDK headers and libraries until Windows XP Service Pack 1 (SP1) and Windows Server 2003. If you do not have a header file and import library for this function, you can call the function using LoadLibrary and GetProcAddress. всё зависит от версии хедера кстати, попробуй импортировать из User32.lib - подключи в pro |
|
|
Razerio |
17.1.2013, 12:36
Сообщение
#7
|
Студент Группа: Новичок Сообщений: 13 Регистрация: 16.1.2013 Пользователь №: 3677 Спасибо сказали: 1 раз(а) Репутация: 0 |
|
|
|
Алексей1153 |
17.1.2013, 12:44
Сообщение
#8
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
должно быть так (в pro)
LIBS+= User32 заголовочник в pro не надо Сообщение отредактировал Алексей1153 - 17.1.2013, 12:45 |
|
|
Razerio |
17.1.2013, 13:18
Сообщение
#9
|
Студент Группа: Новичок Сообщений: 13 Регистрация: 16.1.2013 Пользователь №: 3677 Спасибо сказали: 1 раз(а) Репутация: 0 |
Сделал. Вот только я не понимаю зачем мне нужна user32.lib в pro файле? И без этого работало ведь.
|
|
|
Алексей1153 |
17.1.2013, 18:48
Сообщение
#10
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Razerio, если ты загружаешь функцию динамически, то не нужна
|
|
|
Текстовая версия | Сейчас: 2.12.2024, 11:09 |