![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 19.09.2012
Сообщений: 6
|
![]()
Написал программу, в который один из пунктов поменять атрибут защиты страницы, а он не меняется, в чему у меня ошибка
![]() Проверяю атрибут с помощью VirtualQuery. Код:
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
Прочитайте документацию к VirtualProtect() и обратите особое внимание на последний аргумент.
|
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 19.09.2012
Сообщений: 6
|
![]()
lpflOldProtect [out]
Указатель на переменную, которая принимает старое значение атрбута доступа к памяти для первой страницы из указанного диапазона. Если этот параметр равен nil, или не является правильным указателем на переменную, функция вернет ошибку. Если имеется в виду вот это(то что с верху), я код изменял на такое, но и так не работает. Код:
|
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 19.09.2012
Сообщений: 6
|
![]()
Так же пробовал вот так.
Код:
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
Значит остается проверить адрес - читаем ту же документацию и теперь обращаем внимание на первый аргумент.
|
![]() |
![]() |
![]() |
#6 |
Новичок
Джуниор
Регистрация: 19.09.2012
Сообщений: 6
|
![]()
В VirtualAlloc надо было прописать MEM_RESERVE. Теперь работает
![]() До этого читал функции в методичке, в ней не все описано. ![]() |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
Странно, должно работать и с MEM_COMMIT
|
![]() |
![]() |
![]() |
#8 |
Новичок
Джуниор
Регистрация: 19.09.2012
Сообщений: 6
|
![]()
Я прочитал еще и про VirtualAlloc, да работает и с MEM_COMMIT, я поначалу не раздумывая менял знчения virtualAlloc, во и написал прошлый ответ(на деле изменил две переменные), оказывается я lpAddress в VirtualProtect указал не такой как в VirtualAlloc.
Программа у меня работает. |
![]() |
![]() |
![]() |
#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 |