Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.08.26;
Скачать: [xml.tar.bz2];

Вниз

память не может быть "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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.044 c
15-1185539477
vadgor
2007-07-27 16:31
2007.08.26
УДАЛЕНИЯ ПОВТОРЯЮЩИХСЯ ЗАПИСЕЙ В ТАБЛИЦАХ ПАРАДОХ


15-1185875690
AZIZE
2007-07-31 13:54
2007.08.26
Интернет


2-1186091641
Slonik
2007-08-03 01:54
2007.08.26
Эмулятор нажатия Enter а


8-1164033612
Виктор1
2006-11-20 17:40
2007.08.26
Caption чужой кнопки


15-1185454046
Kostafey
2007-07-26 16:47
2007.08.26
Как узнать название материнки ?





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