Re[3]: Ошибка при удалении обьекта. Delphi
EtM> Не факт -> когда я писл лабораторные ... (требовались большие объемы
EtM> памяти), а при тестировании всегда есть ошибки (а как же без них)
EtM> - то ОС приходилось перегружать после 20-21 компиляции!!!
EtM> А то системных ресурсов не оставалось :(
EtM>
Так ведь из компилятора почти наверняка не выходил время от времени.
С чего же это операционка станет сама освобождать ресурсы,
которые захватил компилятор и забыл освободить...
AT> Да в винде с этим вообще глухо - не далее двух дней назад обрабатывал
AT> исходники из статей (~2600 файлов в каждом по несколько кусков кода)
AT> ...
AT> в общем где-то после 1500 файлов винда (win2k sp4 + 160 mb оперы)
AT> зависала наглухо успев только показать табличку - "недостаточно
AT> системных ресурсов для выполнения операции"
AT> Причем в программе (моей) я просто запускал (createprocess) bat файл
AT> в котром уже были прописаны все настройки для pasind (console version).
AT>
AT> В общем на винду надеяться нельзя - не умеет она утечки отлавливать
AT>
Что-то я не помню ни одной операционки которая могла бы сама решить,
что процесс больше не будет пользоваться тем или иным ресурсом,
если он сам не закрыл все ссылки на него. Освобождаются они
лишь при завершении процесса. Так что в этом отношении
на Windows незачем грешить.
А насчет конкретного случая - есть любимая ошибка использующих
CreateProcess - даже если закрывают дескриптор процесса в структуре
PROCESS_INFORMATION, забывают закрыть дескриптор потока.
В сочетании с возможными утечками ресурсов в запускаемом
процессе это при больших нагрузках убьет кого угодно.
Возможно, у Вас произошло именно это. Кстати, запускать bat
через CreateProcess, мягко говоря, не слишком эффективно.
Почему бы не собрать командную строку в памяти
и создавать процесс с указанием exe?
> EtM> Давайте все свои проблемы и ошибки приписывать Microsoft!!!
> AT>
> AT> Ну не все, а только которые решить не могем :)
> AT>
Рано или поздно при некотором упорстве можно решить почти любую
проблему. Так что не будем зря обижать программистов
Microsoft, тоже ведь люди :)
Лет семь имею дело с их детищем и десятки, а то и сотни глюков, с
которыми я встречался, были вызваны ошибками использующих
Windows программистов, иногда ошибками сред разработки
и очень редко проблемами самой операционки.
Это вызывает некоторое уважение к тем, кто ее пишет :)
AT> Вот например прога (тоже с opengl, кстати) на win2k работает без
AT> ошибок, на XP, в том же месте где в win2k все идеально,
AT> выдает division by zero - ну шо це таке, а?
AT>
Не очень подробно, видимо эта проблема Вас не
очень беспокоит или Вы ее решили.
Возможно, это не имеет отношения к упомянутому случаю, но на всякий
случай скажу, что иногда возникают трудноуловимые ошибки с
исключениями плавающей арифметики при взаимодействии
программ на C и Delphi. Это бывает вызвано тем, что по умолчанию
в C все исключения плавающей арифметики запрещены, а в Delphi
исключения по переполнению, делению на ноль и недопустимой
операции разрешены. Поэтому при переходе из кода на C, не
сбросившего флаги исключений, в код на Delphi во время
проверки на наличие исключений плавающей
арифметики возникают "ошибки ниоткуда".
Номер выпуска : 3956
Возраст листа : 484 (дней)
Количество подписчиков : 519
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/299336
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru