Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.022 c
3-1115457174
Geka
2005-05-07 13:12
2005.06.14
Удаление одинаковых позиций SQL


1-1116885258
Andrata
2005-05-24 01:54
2005.06.14
Как подгрузить фонт из ресурса?


4-1114075171
Dot
2005-04-21 13:19
2005.06.14
ресурсы


4-1113589617
ComPort
2005-04-15 22:26
2005.06.14
Срочно нужна помощь, трабла с COM портом...


1-1116922813
r13
2005-05-24 12:20
2005.06.14
Мерцание формы




   Наверх