Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Указатели


pohil ©   (2005-11-19 18:43:00) 

Мне нужно постранично(по 0х1000) проставить на памяти PAGE_EXECUTE_READWRITE.

VirtualProtectEx(p_handle, Image + i, $1000, PAGE_EXECUTE_READWRITE, @dwOldProt);

Это в идеале. . Imageэто указатель на память а iInteger который в цикле увеличивается на $1000.

Так вот мне нужно получить Pointer, который ссылался бы на память Image + i.

К сожалению тип Pointer не поддерживает арифметические операции.

Подскажите где есть Дао.


sniknik   (2005-11-20 12:58:00) [1]

наглядно
var
 P: Pointer;
 D: Cardinal absolute P;
begin
 PChar(P):= '123456789';
 Label1.Caption:= PChar(P);
 D:= D + 5;
 Label2.Caption:= PChar(P);
end;


Lamer@fools.ua   (2005-11-20 12:43:00) [2]

>> pohil   (19.11.05 20:25) [2]

Нет, конечно.
Это:
P := @(Cardinal(P) + 12345)
даже не скомпилируется.


pohil   (2005-11-19 20:25:00) [3]

>P := Pointer(Cardinal(P) + 12345)

Скажи плз это эквивалент P := @(Cardinal(P) + 12345)?


Lamer@fools.ua   (2005-11-19 19:42:00) [4]

>> pohil   (19.11.05 18:43)

> К сожалению тип Pointer не поддерживает арифметические операции.
var
 P: Pointer;
begin
 ...
 P := Pointer(Cardinal(P) + 12345);
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо