Форум: "Основная";
Текущий архив: 2003.09.08;
Скачать: [xml.tar.bz2];
ВнизEInvalidPointer? Найти похожие ветки
← →
ZHK (2003-08-26 13:22) [0]Спрошу еще раз. Видно модератора типает от слова "задница", поэтому вопрос мой, судя по всему, удалили. Тама такая: создал приложение. Кинул на форму TIDTelnet и TTrayNotifyIcon. TTrayNotifyIcon компонент не стандартный делфийский, но код я просмотрел, вроде без ошибок. Программа никаких объектов сама не удаляет, поэтому, по идее, обращений к несуществующим объектам не должно быть. Память динамически не выделяю и т.д. В общем, просто соединяюсь с сервером, качаю данные и закрываюсь. Все. И все нормально пока программа не начинает закрываться. Тут то и беда. Винда говорит "неизвестное программное исключение", а делфи, в свою очередь, говорит "EInvalidPointer ... Invalid pointer operation". Оттрассировал - ошибка возникает в TTrayNotifyIcon.Destroy в строчке FIcon.Free. При этом Assigned(FIcon)=True, это я тоже проверял. CloseHandle(FIcon.Handle), вместо FIcon.Free приводит к тому, что ошибка перемещается на строчку end; TTrayNotifyIcon.Destroy. Вот так. Кто поможет?
← →
Miralex (2003-08-26 13:29) [1]я не спец но могет тебе надо не Destroy а Free писать! у самого было чтото типа такого давненько!
← →
Skier (2003-08-26 13:30) [2]Действительно "не спец" :)
← →
han_malign (2003-08-26 13:43) [3]>Assigned(FIcon)=True
- говорит только о том, что DWORD(FIcon)<>0, но не о том, что это валидный указатель, который был создан и еще не отпущен... А EInvalidPointer возникает, чаще всего, когда происходит обращение, по старому указателю, к области памяти которая уже "отпущена"(а вот TIcon( nil).Free - как раз пройдет на ура).
← →
Anatoly Podgoretsky (2003-08-26 16:06) [4]Можешь не гадать, ошибка в программе, вполне вероятно в TTrayNotifyIcon, FIcon не действительный. Теперь трассируй компонент и свою программу. Желательно поставить точнки останова во всех местах где изменяется FIcon
← →
ZHK (2003-08-27 07:59) [5]То-то и оно, что FIcon изменяется один раз на стадии создания проекта. Больше я его не трогаю. Вообще я этот модуль ранее применял, пока работало. В принципе не я его писал, но, всеж, явных ошибок не обнаружил. У меня закрадывается подозрение, что все-таки надо сказать "Спасибо, Билли", ибо ошибка закрадывается на стадии формирования сообщений. Может просто парни использовали что-то не то, с этим я не разбирался. А вообще, после удаления модуля из программы, все стало гораздо лучше. У меня правда есть еще чуть претензии к Indy, ибо если программа выполняется в отладчика, то возникает "Socket error", а без делфи - все нормально. Хотя это возможно просто конфликт только с отладчиком.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.09.08;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c