Страница 1 из 1
Сообщение об ошибке при выходе из программы
Добавлено: 05 Декабрь 2012, 12:44
Anatoly
Windows Xp Sp3 + Clarion6.3 9059
Какими могут быть причины выдачи такого сообщения при выходе из задачи?
"Инструкция по адресу NNNNNNNN обратилась к памяти по адресу ММММММММ. Память не может быть "read".
Такое сообщение выходит в 2-х задачах из 10. Все задачи пользуют одни и теже библиотеки. В чем разница между ними
не могу найти.
Re: Сообщение об ошибке при выходе из программы
Добавлено: 05 Декабрь 2012, 13:21
kreator
Это не Клашина ошибка. Вариантов возникновения этой ошибки - море. Посмотри в Интернете как решить. Один вариант - поработать со службой DEP.
Re: Сообщение об ошибке при выходе из программы
Добавлено: 05 Декабрь 2012, 22:27
Stalker
При работе также возникала данная ошибка. На поиск причины затратил много времени, заметил что чаще встречается когда создается достаточно много в одном окне OLE объектов, глючит что-то при их закрытии. Потом плюнул на все и начал использовать Halt для выхода и насколько помню прогу Killprocess.exe. Может не лучший вариант но мне помогло.
Re: Сообщение об ошибке при выходе из программы
Добавлено: 06 Декабрь 2012, 8:00
Игорь Столяров
Anatoly писал(а):Какими могут быть причины выдачи такого сообщения при выходе из задачи?
Привет !
Ты используешь шаблоны XPFrame в приложении ?
Re: Сообщение об ошибке при выходе из программы
Добавлено: 07 Декабрь 2012, 12:01
Anatoly
Последовал совету kreator сходил в Internet нашел список возможных причин от DEP до источников питания.
Прошел по всей цепочке ничего не помогло.
После долгих исследований нашел свою процедуру при вызове которой выходит это сообщение.
Процедура простейшая - обращение к справочнику.
Переписывал ее, изменял структуру справочника, менял имена - ничего не помогло.
Выяснил только одно, если помещаю ее в саму программу - все Ок.
Стоит поместить ее в библиотеку как при любом обращении к этой процедуре - вышеприведенная ошибка.
Re: Сообщение об ошибке при выходе из программы
Добавлено: 07 Декабрь 2012, 12:02
Anatoly
Шаблоны XPFrame не использую
Re: Сообщение об ошибке при выходе из программы
Добавлено: 07 Декабрь 2012, 12:31
kreator
Процедура в другой DLL? Или что за библиотека?
Re: Сообщение об ошибке при выходе из программы
Добавлено: 07 Декабрь 2012, 12:41
Anatoly
Как правило просмотр и обращения к справочникам я размещаю в свои Dll, а из программ делаю к ним вызовы
Re: Сообщение об ошибке при выходе из программы
Добавлено: 07 Декабрь 2012, 13:19
kreator
Извините, а что значит свои dll-ки? Какой-то нестандартный способ работы с DLL?
Re: Сообщение об ошибке при выходе из программы
Добавлено: 11 Декабрь 2012, 13:08
Shur
Пришло на ум. Перенося процедуру из главного модуля в dll надо слегка попыхтеть, чтобы корректно настроить ссылки на внешние объекты.
Поэтому мне кажется, что никакого полтергейста здесь нет, просто нужно обратить внимание на одинаковое объявление глобальных переменных, особенно тех, которые объявлены с атрибутом EXTERNAL, а также на объявление процедур и их параметров -- линкер-то со своей задачей справился, но не факт, что так, как вам хотелось.
Re: Сообщение об ошибке при выходе из программы
Добавлено: 20 Декабрь 2012, 6:57
Anatoly
Победил.
Как писал выше перепробовал все рекомендации, что предлагает Интернет. Кроме того почистил все *.App через
выгрузку в *.Txa и новую сборку - ничего не помогло.
Проблема решилась следующим образом:
Процедуры у меня разбросаны по нескольким библиотекам. Среди них есть главная, через которую определяются все файлы.
Переместил процедуру, обращение к которой вызывало ошибочное сообщение, в главную библиотеку.
Ошибка исчезла.
В чем дело так и не понял. Поскольку это обычная процедура вызова простого справочника из кода и наименования,
без всяких Extrenel.