Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.036 c
1-1116927138
Stef
2005-05-24 13:32
2005.06.14
прочитать ini файл на сайте в интернете


14-1117000277
Бугага
2005-05-25 09:51
2005.06.14
Справка о внедрении


14-1117172312
Sergey13
2005-05-27 09:38
2005.06.14
Про работу DMClient


11-1099634371
JT
2004-11-05 08:59
2005.06.14
OLE в KOL/MCK


1-1117392026
Dezmond
2005-05-29 22:40
2005.06.14
Высота Task Bar





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский