Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.14;
Скачать: CL | DM;

Вниз

Странное поведение моей программы   Найти похожие ветки 

 
тихий вовочка ©   (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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.04 c
14-1116784402
Vulko
2005-05-22 21:53
2005.06.14
Как сделать div на c++ ?


14-1116698692
mySh
2005-05-21 22:04
2005.06.14
Не грузятся картинки в PHP


1-1117521814
||Jeka||
2005-05-31 10:43
2005.06.14
Переименовать заголовок формы


14-1116686979
Fl@sh
2005-05-21 18:49
2005.06.14
Антивирус??


1-1117184647
Layner
2005-05-27 13:04
2005.06.14
Приветствую всех! Простой вопрос по написанию компанента