|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.09.2012, 22:14 | #1 |
Новичок
Джуниор
Регистрация: 19.09.2012
Сообщений: 6
|
VirtualProtect принимает значение False(Delphi 7). Как исправит?
Написал программу, в который один из пунктов поменять атрибут защиты страницы, а он не меняется, в чему у меня ошибка?
Проверяю атрибут с помощью VirtualQuery. Код:
|
19.09.2012, 23:09 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Прочитайте документацию к VirtualProtect() и обратите особое внимание на последний аргумент.
|
20.09.2012, 00:15 | #3 |
Новичок
Джуниор
Регистрация: 19.09.2012
Сообщений: 6
|
lpflOldProtect [out]
Указатель на переменную, которая принимает старое значение атрбута доступа к памяти для первой страницы из указанного диапазона. Если этот параметр равен nil, или не является правильным указателем на переменную, функция вернет ошибку. Если имеется в виду вот это(то что с верху), я код изменял на такое, но и так не работает. Код:
|
20.09.2012, 00:22 | #4 |
Новичок
Джуниор
Регистрация: 19.09.2012
Сообщений: 6
|
Так же пробовал вот так.
Код:
|
20.09.2012, 00:36 | #5 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Значит остается проверить адрес - читаем ту же документацию и теперь обращаем внимание на первый аргумент.
|
20.09.2012, 14:58 | #6 |
Новичок
Джуниор
Регистрация: 19.09.2012
Сообщений: 6
|
Нашёл решение.Спасибо!
В VirtualAlloc надо было прописать MEM_RESERVE. Теперь работает
До этого читал функции в методичке, в ней не все описано. |
20.09.2012, 15:19 | #7 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Странно, должно работать и с MEM_COMMIT
|
20.09.2012, 17:09 | #8 |
Новичок
Джуниор
Регистрация: 19.09.2012
Сообщений: 6
|
Я прочитал еще и про VirtualAlloc, да работает и с MEM_COMMIT, я поначалу не раздумывая менял знчения virtualAlloc, во и написал прошлый ответ(на деле изменил две переменные), оказывается я lpAddress в VirtualProtect указал не такой как в VirtualAlloc.
Программа у меня работает. |
20.09.2012, 17:39 | #9 |
Новичок
Джуниор
Регистрация: 19.09.2012
Сообщений: 6
|
Вопрос?
Вопрос немного не по названию темы.
Почему при вводе некоторых адресов(например 6675435), размер регона становится большим(335872 байт) и атрибт защиты не меняется? Где об этом почитать? |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Иногда не сохраняются изменения в базе Paradox. Как исправит? | Dux | БД в Delphi | 9 | 31.08.2012 23:30 |
Проблемы с Delphi 7 на Windows 7 (delphi не принимает пути с кирилицей) | unbanned | Общие вопросы Delphi | 12 | 16.04.2011 21:19 |
не могу додуматься как исправит программу ... | YooGine | Общие вопросы C/C++ | 2 | 23.07.2010 11:44 |
VirtualAlloc и VirtualProtect? | VintProg | Общие вопросы Delphi | 1 | 29.06.2009 11:50 |
блок "cont" с права не принимает значение "margin: 10px;" которое описано в body | tabikA | HTML и CSS | 5 | 24.02.2009 21:50 |