Страница 1 из 2
Подгружение иконок с *.ехе файлов
Добавлено: 16 дек 2004, 17:29
xpymep
Задача:"Показать иконку на форме зная, только путь к *.exe файлу"
Я себе представляю это так(C++ Builder):
Код: Выделить всё
void* ic = LoadLibrary("some.exe");
if (ic!=NULL)
{
TIcon *icon = new TIcon();
HICON _i;
_i = LoadIcon(ic,IDI_APPLICATION)
if (_i!=NULL)
{
icon->Handle = _i;
}
}
К сожалению этот код не пашет...

. Как быть ? Помогите пожалуйста.
Добавлено: 16 дек 2004, 18:52
Romeo
IDI_APPLICATION - это идентификатор системной иконки. При вызове LoadIcon для системных иконок, HINSTANCE процесса должен равняться NULL.
Добавлено: 17 дек 2004, 12:11
xpymep
Все равно не пашет...

Добавлено: 17 дек 2004, 12:35
Romeo
Код: Выделить всё
HICON hIcon = ::LoadIcon(NULL, IDI_APPLICATION);
Не пашет? Т.е. hIcon равняется нулю? Или что?
Добавлено: 17 дек 2004, 12:45
Eugie
Попробуй LoadFromResourceName(NULL, MAKEINTRESOURCE(IDI_APPLICATION))
Добавлено: 17 дек 2004, 12:54
Romeo
Define IDI_APPLICATION уже учитывает макрос MAKEINTRESOURCE.
Добавлено: 17 дек 2004, 13:15
Eugie
Romeo, ты прав. Просто BCB по идее мог его переопределить как числовой. В windows.h он тоже объявлен по-разному, в зависимости от контекста.
Добавлено: 17 дек 2004, 19:03
xpymep
Romeo, Да равен NULL.
LoadFromResourceName(); первый параметр это деструктор окна?
Добавлено: 20 дек 2004, 13:39
Romeo
Деструктор?

Тяжёлый случай, господин
xpymep, читайте литературу - не владеете терминологией. Первый параметр - инстанс (instance) приложения.
Добавлено: 21 дек 2004, 17:51
Hawk
В данном случае как мне кажется надо использовать SHGetFileInfo с флагом SHGFI_ICON