Форум: "Начинающим";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];
ВнизУказатели Найти похожие ветки
← →
pohil (2005-11-19 18:43) [0]Мне нужно постранично(по 0х1000) проставить на памяти PAGE_EXECUTE_READWRITE.
VirtualProtectEx(p_handle, Image + i, $1000, PAGE_EXECUTE_READWRITE, @dwOldProt);
Это в идеале. .Image это указатель на память а i Integer который в цикле увеличивается на $1000.
Так вот мне нужно получить Pointer, который ссылался бы на память Image + i.
К сожалению тип Pointer не поддерживает арифметические операции.
Подскажите где есть Дао.
← →
Lamer@fools.ua © (2005-11-19 19:42) [1]>>pohil (19.11.05 18:43)
>К сожалению тип Pointer не поддерживает арифметические операции.var
P: Pointer;
begin
...
P := Pointer(Cardinal(P) + 12345);
end;
← →
pohil (2005-11-19 20:25) [2]>P := Pointer(Cardinal(P) + 12345)
Скажи плз это эквивалентP := @(Cardinal(P) + 12345)
?
← →
Lamer@fools.ua © (2005-11-20 12:43) [3]>>pohil (19.11.05 20:25) [2]
Нет, конечно.
Это:P := @(Cardinal(P) + 12345)
даже не скомпилируется.
← →
sniknik © (2005-11-20 12:58) [4]наглядно
var
P: Pointer;
D: Cardinal absolute P;
begin
PChar(P):= "123456789";
Label1.Caption:= PChar(P);
D:= D + 5;
Label2.Caption:= PChar(P);
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 4.28 c