powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Загрузить icon из DLL
11 сообщений из 11, страница 1 из 1
Загрузить icon из DLL
    #32429095
director
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как загрузить иконку из динамической библиотеки, например:
%SystemRoot%system32\shell32.dll,3"
Так это прописано в реестре.
Загрузить надо куда-нибудь в Builder (например в ImageList)???
...
Рейтинг: 0 / 0
Загрузить icon из DLL
    #32429117
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
см фун. ExctracIcon


i_i
(';')
(V),(V),,

JS
...
Рейтинг: 0 / 0
Загрузить icon из DLL
    #32429228
director
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Верно!!!
Ну вот я пишу

HICON AAA;

AAA=ExtractIcon(MyForm->Handle,"%SystemRoot%\system32\SHELL32.DLL",0);

возвращается NULL.
...
Рейтинг: 0 / 0
Загрузить icon из DLL
    #32429312
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну тогды ExctractIconEx etc.

у мя все нормально было ...


i_i
(';')
(V),(V),,

JS
...
Рейтинг: 0 / 0
Загрузить icon из DLL
    #32429691
director
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JibSkeart!

Если это не ударит по коммерческой тайне, пришлите как вы там это делали, потому что ни одна из этих функций не находи ни одной иконки в shell32.dll. а их там полно - это все знают!
...
Рейтинг: 0 / 0
Загрузить icon из DLL
    #32429726
rst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HICON ExtractIcon(
HINSTANCE hInst, // instance handle
LPCTSTR lpszExeFileName, // name of file
UINT nIconIndex // index of icon
);
hInst
Handle to the instance of the application calling the function.


MyForm->Handle скорее напоминает handle окна.
lpszExeFileName="SHELL32.DLL"
...
Рейтинг: 0 / 0
Загрузить icon из DLL
    #32429742
director
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т. е. правильнее Application->Handle ??
...
Рейтинг: 0 / 0
Загрузить icon из DLL
    #32429756
director
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишем:

HICON AAAA;

AAAA=ExtractIcon(Application->Handle, "C:\WINNT\explorer.exe",3);

получаем AAAA=NULL;

и что сдесь не так?
...
Рейтинг: 0 / 0
Загрузить icon из DLL
    #32429769
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может правильней так ? "\\" всмусле .
AAAA=ExtractIcon(Application->Handle, "C:\\WINNT\\explorer.exe",0);



i_i
(';')
(V),(V),,

JS
...
Рейтинг: 0 / 0
Загрузить icon из DLL
    #32430697
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дайте и мне шашкой помахать :)

Можно грузить иконки и через LoadImage(...)
Иногда это бывает удобнее.
Но иногда и нет.

Пример из моей проги

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
	HMODULE hModule;
	char szShell32[MAX_PATH];

	GetSystemDirectory(szShell32,MAX_PATH);
	strcat(szShell32, "\\shell32.dll" );
	hModule = LoadLibrary(szShell32);

	//
	HICON hIcon;
	hIcon = (HICON)LoadImage(hModule,MAKEINTRESOURCE( 4 ),IMAGE_ICON, 16 , 16 ,LR_DEFAULTCOLOR); // это открытая папка

	SendMessage(GetDlgItem(MainHWND,IDC_NEKIY_BUTTON),BM_SETIMAGE,IMAGE_ICON,(long)hIcon);
	hUpdate4 = (HICON)LoadImage(hModule,MAKEINTRESOURCE( 4 ),IMAGE_ICON, 16 , 16 ,LR_DEFAULTCOLOR);  // это закрытая папка
	hUpdate44= (HICON)LoadImage(hModule,MAKEINTRESOURCE( 44 ),IMAGE_ICON, 16 , 16 ,LR_DEFAULTCOLOR);  // это закрытая со звездой
				

	FreeLibrary(hModule);


hUpdate4 и hUpdate44 - тоже иконки.

ExtractIconEx извлекает иконку ассоциированную с приложением. Если ничё в реестре не ассоциировано, то ничё и не извлечётся. Так что с DLL такой номер скорее всего не пройдёт. (Причём там ещё есть некий загибон с отрицательными индексами в реестре... одни из них порядковые, другие - идентификаторы)
А LoadImage - извлекает по индексу. Причём по строчному тоже. К примеру, в таких приложениях как калькулятор и телнет иконки имеют текстовые индексы (да вобщем-то и все остальные тоже текстовые, если честно...)
Если надо получить все иконки - есть функция-енумератор ресурсов.
...
Рейтинг: 0 / 0
Загрузить icon из DLL
    #32430769
director
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, верно, // Дело в том, что я посмотрел значение DefaultIcon в реестре, скопировал его и вставил в ExtractIcon для отладки. А если брать это значение через ReadKey в AnsiString, то там все с \\. И все пошло

Спасибо за советы
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Загрузить icon из DLL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]