Выдаётся сообщение "Память не может быть read"
Проблема:
Инструкция по адресу "0x*******" обратилась к памяти по адресу "0x*******". Память не может быть "written" "ok"--завершение приложения "отмена"--отладка приложения
или
Инструкция по адресу "0x*******" обратилась к памяти по адресу "0x*******". Память не может быть "read" "ok"--завершение приложения "отмена"--отладка приложения
В Windows есть такая функция "Предотвращение выполнения данных" (DEP). В некотором роде она предназначена для осуществления безопасности и стабильности системы. Функция DEP не препятствует становке потенциально опасных программ на компьютер, а только следит за тем, как программы используют память, и после установки SP2, DEP по умолчанию включена для основных программ и служб Windows. В данном случае ошибка возникает при обращении какой-либо программы или модуля программы напрямую к закрытому участку памяти.
Если какая-то программа вызывает срабатывание этой функции(т.е. появляется данная ошибка), Microsoft рекомендует добавить эту программу в список исключений.
Делается это следующим образом: щелчок правой кнопкой мыши на значке "мой компьютер" -> свойства -> вкладка "дополнительно" -> в поле "быстродействие" нажимаете на кнопку "параметры" -> в появившемся окне на вкладке "предотвращение выполнения данных" ставится флажок напротив "Включить DEP для всех программ и служб, кроме кроме выбранных ниже" -> становится активной кнопка "добавить", нажимая на которую можно добавить в список исключений нужные программы.
Недостаток этого способа в том, что нужно будет добавлять в этот список все программы (и их некоторые модули) , которые могут вызвать данную ошибку.
Альтернативный вариант
Другой способ избавиться от этой ошибки - полностью проверить всю систему на наличие вредоносных программ(вирусов) антивирусной программой с обновленными базами. Часто(но есть и исключения) именно вредоносные программы вызывают подобные ошибки. Так же подобные ошибки сочетаются с некоторыми другими (например, ошибки в каком-либо процессе) при подключении к интернету, либо во время работы в сети интернет.
Если антивирус НЕ обнаружил НИ ОДНОГО вируса, то в вашем случе проще отключить DEP целиком, путем редактирования файла boot.ini. Файл boot.ini находится на диске C.
В нем ищем строчку: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional RU" /noexecute=optin /fastdetect и меняем на multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional RU" /noexecute=AlwaysOff /fastdetect
Файл boot.ini может быть вообще скрыт. Чтобы его увидеть и открыть для редактирования нужно в меню "сервис" выбрать "свойства папки" --> "вид" --> убрать галочку с "скрывать защищенные системные файлы".
Предотвращение выполнения данных (DEP) используется для предотвращения проникновения на компьютер вирусов и других угроз безопасности, которые выполняют вредоносный код из областей памяти, которые должны использоваться только операционной системой Windows и другими программами. Такой тип угроз безопасности наносит ущерб, занимая по очереди все области памяти, используемые программой.
Затем вирус распространяется и повреждает другие программы, файлы и даже контакты электронной почты. Но если вы будете своевременно обновлять базы антивируса и делать полную проверку компьютера хотя бы раз в неделю то все будет "ОК"...
Если выше перечисленное не помогло : SP3 весьма полезно в этих случаях, ставится легко и проблемы с DEP становятся менее актуальны.
|