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

Вниз

Как обойти Access violation при попытке записи(+)   Найти похожие ветки 

 
mangoost   (2001-11-05 12:06) [0]

в определенную ячейку памяти?


 
Digitman   (2001-11-05 12:56) [1]

Что значит - "обойти" ? Если "не лезет" туда (в ячейку памяти) ничего, значит, она - не твоя, и ты не имеешь прав на доступ к ячейке по записи.


 
Dimka Maslov   (2001-11-05 13:47) [2]

>mangoost
Любое приложение для виндов может писать и читать только в те ячйки памяти, куда ему позволяет операционная система, а не туда, куда захочет программист. Как ты думаешь почему в Delphi исчезли массивы Mem и Port? Видимо не просто так.


 
paul_shmakov   (2001-11-05 17:21) [3]

Можно с помощью VirtualQuery сначала проверить, доступна ли станица памяти, на кот. расположена "ячейка", для записи. Если нет, а очень нужно, то с помощью VirtualProtect поменять защиту региона.


 
paul_shmakov   (2001-11-06 13:33) [4]

Сорри, про VirtualProtect - это я вчера немного нагнал (я писать начал, потом меня отвлекли, и через 15 мин я закончил полной чепухой :)
Перво-наперво, нужно действительно VirtualQuery проверить: 1) выделена ли память; 2) доступна ли она для записи.
Если память не выделена, то можно ее, конечно, выделить, хотя это глупость какая-то.
А вот если память выделена, но read only, то можно попытаться изменить защиту страницы (VirtualProtect).



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.023 c
1-22244
Socol
2001-12-15 15:42
2002.01.08
Загрузка файла!


1-22119
Socol
2001-12-15 10:45
2002.01.08
Помогите по двум вопросам!


6-22288
atmospheric
2001-10-09 23:49
2002.01.08
WinGate


1-22190
T2
2001-12-14 03:22
2002.01.08
KillSelf


3-21978
Анонимщик
2001-12-04 20:25
2002.01.08
ADO+Excel+Delphi5





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