![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 07.04.2013
Сообщений: 5
|
![]()
Друзья, добрый день. Прошу помощи голову уже "сломал".
Ситуация следующая. Есть элемент управления CTreeCtrl, в нем перечень процессов. Все ОК! Решил добавить иконки для каждого процесса - для наглядности красивости (и понтов :-)... Добавил три строчку кода для каждого элемента перед добавлением элемента в список... hIcon = ExtractIcon( AfxGetInstanceHandle(), szExeFile, 0 ); tvItem.item.iImage = ImageList.Add ( hIconSmall ); DestroyIcon( hIcon ); И тут начинается странное поведение приложения. Во первых, иконки начал получать - но х.. поймешь что за иконки. После 10 "прогонов" (по F5) вообще стал получать сообщение "Необработанное исключение в 0x77de4621..." и выпадать в "Afxstate.cpp" AfxDeactivateActCtx. ![]() C функцией ExtractIconEx( szExeFile, 0, &hIconBig, &hIconSmall, 1 ); ситуация аналогичная! Причем ставлю брейкпоинт на вызове ExtractIcon/ExtractIconEx по F5 4 раза выполняется (в цикле) на 5-ый вылетает ошибка "Необработанное исключение..." ExtractAssociatedIcon - выполняется, но иконка у почти у всех процессов одинаковая в стиле х... поймешь. Полное сообщение об ошибке: Необработанное исключение в "0x77de4621" в "application.exe": 0xC015000F: Деактивируемый контекст активации не является последним активированным контекстом. Если нажать кнопку "Пропустить", то окно программы отображается но элемент управления не растянут по высоте - не заполняет фрейм, а остается по высоте в 100 пикселей (как при создании фрейма сплиттера). Прошу помочь - что за ошибка 0xC015000F, почему приложение "спотыкается" только при вызове ExtractIcon/ExtractIconEx? Если можно примером работающим с извлечением иконок из файлов киньте в меня, пожалуйста. Windows 7 x64 MSVS 2008 MFC |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
![]()
Вы пробовали проверять возвращаемые значения?
ImageList.Add создает новую копию объекта, чтобы Вы смогли удалить ненужный объект (DestroyIcon) ? |
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 07.04.2013
Сообщений: 5
|
![]()
Вы, немного не внимательно прочитали предыдущее сообщение.
Вылетает именно на вызове ExtractIcon/ExtractIconEx. На следующую строчки кода управление не передается! Получается падает сама ExtractIcon/ExtractIconEx. Но вот тогда что за ошибка? |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
![]()
У Вас, между прочим, в вызове ExtractIcon есть еще один вызов...
Неплохо было бы увидеть: 1. Кусок кода с объявлениями переменных 2. Стек из ексепшена На форумах пишут , что это должно помочь: Код:
|
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 07.04.2013
Сообщений: 5
|
![]()
AfxGetInstanceHandle () возвращает инстанс приложения для вызова ExtractIcon. В принципе, можно передать 0.
У меня встречный вопрос. Ситуация следующая есть приложение "nvtray.exe". Если я открываю папку, содержащую этот файл, то вижу иконку, которую отображает проводник виндоус (фирменная иконка nvidia). Теперь я вызываю ExtractIcon и передаю ей путь до этого самого файла (nvtray.exe). И что? А ни чего - пусто. Причем для некоторых других файлов иконки экстрактируются. ![]() Как то проводник "выщемляет" иконку - и делает это очень просто... Как? Как выясняется не только берет иконку с наименьшим индексом (т.е. 0)... ![]() |
![]() |
![]() |
![]() |
#6 |
C++ & PHP & Asm
Форумчанин
Регистрация: 06.12.2008
Сообщений: 300
|
![]()
Посмотрев навскидку, подозреваю, что Вы неправильно оперируете с указателями.
И пользуйтесь GetLastError для выявления кода последней неудачной операции. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Explorer.exe Исключение неизвестное программное исключение Windows XP, что делать? | Igorilla | Windows | 6 | 02.04.2013 22:49 |
Необработанное win 32 исключение произошло | cska Косторных | Помощь студентам | 2 | 05.01.2013 22:41 |
Необработанное исключение | Faton 11 | Общие вопросы C/C++ | 4 | 31.10.2012 00:29 |
C++ Error Необработанное исключение...нарушение прав доступа | Alt_Shift | Помощь студентам | 1 | 24.05.2012 12:55 |
Ошибка: Необработанное исключение типа "System.IO.FileNotFoundExceptio n" | MoT9I | Visual C++ | 1 | 27.11.2011 12:31 |