Форум: "Потрепаться";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];
ВнизСтранное поведение моей программы Найти похожие ветки
← →
тихий вовочка © (2005-05-25 19:23) [0]Я тут пишу прогу. В ней есть одна большая глобальная переменная. Назовем ее kvadroData. Она берет на себя всю работу с источниками данных, что позволяет прикреплять любой интерфейс программы не трогая логику. Этот объект-переменную я создаю динамически - засунул в WinMain. Создается она до создания форм. И удаляется после Application Run. Стал ловить необяснимое исключение. При трассировке по шагам выяснилось, что каким-то чудом уже после выхода из WinMain (честное слово, шаг - и ты за операторными скобками) вызывается метод Resize одной из форм. А так как в этом методе идет обращение к моему объекту - я ловлю Exception. Почему такое происходит? Я конечно могу добавить проверку на существование объекта, но хочется понять поведение программы.
← →
Axis_of_Evil © (2005-05-25 19:32) [1]>В ней есть одна большая глобальная переменная
не рекоментуется
>на существование объекта, но хочется понять поведение программы.
может дело в ОС?
← →
старый маразматикЪ (2005-05-25 19:35) [2]ниче не понял... хто такой WinMain? попробуй создавать свой объект в
initialization
и удалять в
finalization
← →
старый маразматикЪ (2005-05-25 19:39) [3]или прям в файле проекта, который dpr. прям там и создавай свой объект перед всей лабудой.
> Axis_of_Evil © (25.05.05 19:32) [1]
> не рекоментуется
да ну! а мне такие переменные вовсе не мешают. иногда даже помогают. смотря для чего
← →
wicked © (2005-05-25 19:47) [4]> тихий вовочка ©
имхо проблема в том, что формы убиваются не при выходе из WinMain, а немного позже, при "деинициализации" Application... решений море, например, об-NULL-ять переменную kvadroData, соответственно, при всех обращениях к kvadroData проверяем её на NULL...
← →
Axis_of_Evil © (2005-05-25 19:50) [5]>ниче не понял... хто такой WinMain?
чую, речь идет о C++
← →
ЮЮ © (2005-05-26 05:09) [6]>я ловлю Exception. Почему такое происходит? Я конечно могу добавить проверку на существование объекта, но хочется понять поведение программы.
Поймав Exception, нажми Ok, и посмотри Call Stack (при включенном Use Debug DCUs) и вся логика станет наглядна.
← →
Юрий Зотов © (2005-05-26 06:24) [7]> Axis_of_Evil © (25.05.05 19:32) [1]
>> В ней есть одна большая глобальная переменная
> не рекоментуется
Application, Screen, Printer, Mouse... и т.д.
И ничего страшного.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.034 c