Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Использование Halt.. [D5, 2000]


pathfinder ©   (2006-10-01 18:29:00) 

Добрый вечер.
Подскажите пожалуйста, в чем разница использования halt и exit? И как используется exitcode который можно указать в halt?


pathfinder   (2006-10-01 23:36:00) [1]


> Ketmar ©   (01.10.06 23:29) [14]


Понятно. Спасибо:)


Ketmar   (2006-10-01 23:29:00) [2]

>[13] pathfinder 1-Oct-2006, 23:11
>У меня в проге есть экземпляры классов tidftp,
>tstringlist для них это критично?
"сокетные" -- лучше закрывать. это не обязательно, но "бонтон". %-) TStringList'ам -- всё равно обычно.

но вообще -- лучше уничтожать всё, что создавал. тоже "бонтон".


pathfinder   (2006-10-01 23:11:00) [3]


> Существенные например для внешнего интерфейса, например
> сервера ворда, которому _Release не сделают.


У меня в проге есть экземпляры классов tidftp, tstringlist для них это критично?


guav   (2006-10-01 23:04:00) [4]

> ну, это детали. %-)

Существенные например для внешнего интерфейса, например сервера ворда, которому _Release не сделают.


Ketmar   (2006-10-01 23:02:00) [5]

>[10] jack128(c) 1-Oct-2006, 23:00
>нет, они не убьются. Освободится память из под
>объектов и всё.  Код деструктора объектов
>ествественно не будет выполнен.
ну, это детали. %-)


jack128   (2006-10-01 23:00:00) [6]

pathfinder   (01.10.06 19:22) [8]
т.к. они и так убьются?


нет, они не убьются. Освободится память из под объектов и всё.  Код деструктора объектов ествественно не будет выполнен.


Ketmar   (2006-10-01 19:52:00) [7]

угу. всё, что ты не добил сам -- добьёт ОС. %-)


pathfinder   (2006-10-01 19:22:00) [8]


> никак не освобождается. ибо это не надо. потому как умирает
> весь АП скопом. вместе с его системными объектами и прочим.
>


Значит объекты которые я создал в ходе работы проги, которые при нормальном раскладе я убиваю методом Free, в случае завершения холтом убивать не надо, т.к. они и так убьются?

ps
прошу прощения за занудство:) просто хочется четко уяснить себе этот момент


guav   (2006-10-01 19:19:00) [9]

> никак не освобождается.

таки освобождается частично.
например глобальные переменные со строками. или всё что освобождается в финализации.


Ketmar   (2006-10-01 19:14:00) [10]

>[4] pathfinder 1-Oct-2006, 19:01
>А память при завершении проги холтом
>освобождается корректно?
никак не освобождается. ибо это не надо. потому как умирает весь АП скопом. вместе с его системными объектами и прочим.


pathfinder   (2006-10-01 19:01:00) [11]


> Проггер из библиотеки   (01.10.06 18:42) [3]


А память при завершении проги холтом освобождается корректно?


guav   (2006-10-01 19:01:00) [12]

exit выход из подпрограммы (процедуры, функции или метода), halt - из программы.
значение возвращается ОС, может быть опрошено в bat файлах через if errorlevel или другой программой через GetExitCodeProcess


Проггер из библиотеки   (2006-10-01 18:42:00) [13]

ExitCode - осталось со времён MS-DOS.
В bat-файле можно проверить результат работы программы ERRORLEVEL. Если 0, то работа была завершена без ошибок.

Насчёт нормального и ненормального - это связано со стеком, который используется для работы с процедурами. Вообще же: Halt просто безжалостно вырубает прогу, Exit - аккуратно завершает работу текущей процедуры//функции.


pathfinder   (2006-10-01 18:38:00) [14]


> grisme ©   (01.10.06 18:31) [1]


Спасибо. Справка у меня тоже есть:)

Хотелось бы узнать в чем разница между normal и abnormal termination. Ну и второй вопрос тоже в силе..


grisme   (2006-10-01 18:31:00) [15]

procedure Halt [ ( Exitcode: Integer) ];

Description

Halt performs an abnormal termination of a program and returns to the operating system.

To perform a normal termination of a Delphi application, call the Terminate method on the global Application object. If the application does not use a unit that provides an Application object, call the Exit procedure from the main Program block.
Exitcode is an optional expression that specifies an exit code for the program.


Наверх

Титульная страница Поиск, карта сайта Написать письмо