Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > HICON hIconL = (HICON)LoadImage(.,.,..) Не работае


Автор: Прохожий 7.5.2007, 08:40
Собственно сабж. Вот код
Код

            HICON hIconL = HICON (LoadImage(AfxGetInstanceHandle(),
                _T("D:\\IconInternet.ico"), 
                IMAGE_ICON, 32, 32, LR_DEFAULTSIZE | LR_LOADFROMFILE | LR_DEFAULTCOLOR));
            if(hIconL != NULL)
            {
                m_cStaticIcon.SetIcon(hIconL);



Не хочет работать. 

Автор: Greeen 7.5.2007, 09:18
У меня работает  smile Проверь повнимательней.

Автор: srd 7.5.2007, 09:22
У меня тоже работает :( Пробовал ей подсовывать иконки разных размеров и с разной цветностью - работает, зараза...

А GetLastError() чего говорит?

Автор: Прохожий 7.5.2007, 09:36
Блиин!  smile  Я уже по всякому пробовал
и так
hIconL = (HICON)LoadImage(AfxGetInstanceHandle(), "D:\\IconInternet.ico", IMAGE_ICON, 0, 0, NULL);
Из ресурсов пожалста а с диска ни как. smile 

Автор: Greeen 7.5.2007, 09:41
Блин, ну вообще не знаю. Ну файл переименуй, не знаю  smile 

Автор: Прохожий 7.5.2007, 09:41
Цитата

А GetLastError() чего говорит?

Подробнее пожалста. Тама у меня стоит проверка на нуль так воно её и не проходит. когда убираешь проверку то это в место иконки и имеем -> NULL
 smile 

Автор: srd 7.5.2007, 09:44
Код

HICON hIconL = HICON (LoadImage(AfxGetInstanceHandle(),
            _T("D:\\IconInternet.ico"), 
            IMAGE_ICON, 32, 32, LR_DEFAULTSIZE | LR_LOADFROMFILE | LR_DEFAULTCOLOR));
if (hIconL == NULL)
{
     DWORD dw = GetLastError();
     // Здесь смотрим чему равно dw и идём в MSDN в статью "System Error Codes"
}



Автор: Прохожий 7.5.2007, 09:47
АГАА! Вот что-то выдало когда переключился в режим РЕЛИЗ

Цитата

LINK : warning LNK4089: all references to "SHELL32.dll" discarded by /OPT:REF


Тока чё эт значит? Но Не работает/работает по прежнему

Автор: srd 7.5.2007, 09:56
Этот варнинг к делу не относится. Просто линкеру в настройках проекта указано линковать shell32.lib, а ни одна функция из этой библиотеки не была использована. Потому линкер игнорирует lib файл о чём и предупреждает.

Автор: zkv 7.5.2007, 10:00
Цитата(srd @  7.5.2007,  09:44 Найти цитируемый пост)
// Здесь смотрим чему равно dw и идём в MSDN в статью "System Error Codes"

проще Tools->Error Lookup 
smile

Автор: Прохожий 7.5.2007, 10:59
Цитата

1813 Указанный тип ресурса в файле образа отсутствует.


Фигня какато. Как отсутствует? Ведь тама иконка я ведь глазами её вижу smile  Да и воно в ресурсы импортируется без проблем.

Автор: Прохожий 7.5.2007, 11:32
АГА! smile НАШЁЛ!! Оказывается я не освободил файл перед чтением иконки.
Цитата

32  Процесс не может получить доступ к файлу, так как этот файл занят другим процессом. 

srd и zkv Спасибо ОГРОМНОЕ за DWORD dw = GetLastError(); Оно блин незнакомо было smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)