Текущий архив: 2007.08.26;
Скачать: CL | DM;
Внизпамять не может быть "written". Найти похожие ветки
← →
rosl (2007-08-05 16:35) [0]При выходе программа выдаёт ошибку:
Инструкция по адресу "0x004b2808" обратилась к памяти по адресу "0x00f3cb0c" память не может быть "written".
закрываю программу командой CLOSE
предлагается отладка, но как ей пользоваться?
заметил, что ошибка вылетает, если добавляю в uses любой класс. Но ведь до этого всё нормально было, и форм много, и компанентов на них тоже. и ругается на любой компанент, даже на те, что вместе с DELPHI идут
← →
{RASkov} © (2007-08-05 16:46) [1]> [0] rosl (05.08.07 16:35)
"Пытаешься" работать с несуществующим объектом... Т.е. с еще не созданным или с уже убитым....
ищи все объекты и смотри их целостность....
> заметил, что ошибка вылетает, если добавляю в uses любой
> класс.
Во первых в Uses классы не добавляются..., а модули...
Ну дык если uses вообще пустой, то....
Что за программа у тебя?
← →
{RASkov} © (2007-08-05 16:48) [2]Или Работа с памятью, Указатели....
Память не выделил, а пытаешься туда что-нибудь записать. Скорее всего.
← →
Инс © (2007-08-05 16:51) [3]
> Т.е. с еще не созданным или с уже убитым....
Скорее всего уже убитым. Еще не созданным - не может быть, так как адрес слишком от nil отличается
← →
Инс © (2007-08-05 17:01) [4]Хотя нет, странно. Это окно означает необработанное исключение. В коде с использованием VCL необработанное исключение маловероятно, так как смотрим реализацию метода Run класса TApplication. Там весь код заключается в SEH-фрейм. Так что, тут телепатировать трудно. Нужно смотреть подробнее.
PS: Кстати, в uses не классы добавлять надо, а модули ;)
← →
oxffff © (2007-08-05 17:14) [5]
> Еще не созданным - не может быть, так как адрес слишком
> от nil отличается
А нефинализируемые параметры в стеке не инициализируется. Так что объект может быть еще не создан.
← →
Инс © (2007-08-05 17:16) [6]
> [5] oxffff © (05.08.07 17:14)
Если речь идет о локальной переменной классового типа - то да. А если о глобальной, то она не в стеке хранится, а в сегменте данных. Там инициализируется. Если речь переменная классового типа - это поле другого класса - то тоже инициализируется нулем.
← →
oxffff © (2007-08-05 17:22) [7]
> Если речь переменная классового типа - это поле другого
> класса - то тоже инициализируется нулем.
Не всегда, если NewInstance не перекрыт. :)
← →
Инс © (2007-08-05 17:26) [8]
> Не всегда, если NewInstance не перекрыт. :)
В принципе да, правда не помню, чтобы где-либо я видел, чтобы он был перекрыт.
← →
oxffff © (2007-08-05 17:37) [9]
> В принципе да, правда не помню, чтобы где-либо я видел,
> чтобы он был перекрыт.
Я использовал в целях небольшой оптимизации. ;)
← →
Инс © (2007-08-05 22:03) [10]
> Я использовал в целях небольшой оптимизации. ;)
Ааа, тогда ясно :)) Буду молиться, чтобы мне не пришлось использовать ваш код в своих проектах! Боюсь увидеть там ООП нового поколения. Если судить по вашим последним вопросам, то бедный TObject лежит в соплях у ваших ног, корчится и просит о пощаде! Помилуйте его, что он вам сделал?!
PS: это не наезд, просьба не обижаться. Я так шучу ;)
← →
oxffff © (2007-08-05 23:29) [11]
> Инс © (05.08.07 22:03) [10]
>
> > Я использовал в целях небольшой оптимизации. ;)
>
>
> Ааа, тогда ясно :)) Буду молиться, чтобы мне не пришлось
> использовать ваш код в своих проектах! Боюсь увидеть там
> ООП нового поколения. Если судить по вашим последним вопросам,
> то бедный TObject лежит в соплях у ваших ног, корчится
> и просит о пощаде! Помилуйте его, что он вам сделал?!
>
> PS: это не наезд, просьба не обижаться. Я так шучу ;)
Почему ООП нового поколения?
Если это предусмотрено структурой базового класса в Delphi?
На этом основана работа _ClassCreate.
← →
Инс © (2007-08-05 23:36) [12]
> [11] oxffff © (05.08.07 23:29)
Не, я не про NewInstance. Я понимаю, что это виртуальный классовый метод. А про вообще в принципе. Ваши последние эксперименты безусловно интересны в теоретическом плане, но вот в надежности кода, на них построенном, я что-то сомневаюсь. В прочем, это оффтопик.
← →
rosl (2007-08-06 02:23) [13]
> Или Работа с памятью, Указатели....Память не выделил, а
> пытаешься туда что-нибудь записать. Скорее всего.
как выделять память? ссылочку об этом, если можно...
← →
oxffff © (2007-08-06 08:43) [14]
> Инс © (05.08.07 23:36) [12]
>
> > [11] oxffff © (05.08.07 23:29)
>
>
> Не, я не про NewInstance. Я понимаю, что это виртуальный
> классовый метод. А про вообще в принципе. Ваши последние
> эксперименты безусловно интересны в теоретическом плане,
> но вот в надежности кода, на них построенном, я что-то
> сомневаюсь.
Пример ненадежности в студию.
Страницы: 1 вся ветка
Текущий архив: 2007.08.26;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.045 c