Главная страница
    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.034 c
3-1115390604
Dmitry
2005-05-06 18:43
2005.06.14
Как избавиться от автоматически создаваемых файлов типа _QSQ11.DB


4-1114248673
Max-F
2005-04-23 13:31
2005.06.14
Определение пути текущей папки


3-1115211791
pavel_guzhanov
2005-05-04 17:03
2005.06.14
Как в базу данных поместить картинку?


14-1117134416
Narikmen
2005-05-26 23:06
2005.06.14
image1


4-1113987033
LineSoft
2005-04-20 12:50
2005.06.14
Управление принтерами





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский