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


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

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

HICON AAA;

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

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

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


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

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

Если это не ударит по коммерческой тайне, пришлите как вы там это делали, потому что ни одна из этих функций не находи ни одной иконки в shell32.dll. а их там полно - это все знают!
...
Рейтинг: 0 / 0
03.03.2004, 15:34
    #32429726
rst
rst
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузить icon из DLL
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
03.03.2004, 15:47
    #32429742
director
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузить icon из DLL
Т. е. правильнее Application->Handle ??
...
Рейтинг: 0 / 0
03.03.2004, 15:54
    #32429756
director
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузить icon из DLL
Пишем:

HICON AAAA;

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

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

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



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

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

Можно грузить иконки и через 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
04.03.2004, 11:07
    #32430769
director
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузить icon из DLL
Да, верно, // Дело в том, что я посмотрел значение DefaultIcon в реестре, скопировал его и вставил в ExtractIcon для отладки. А если брать это значение через ReadKey в AnsiString, то там все с \\. И все пошло

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


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