Форум: "Прочее";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
ВнизПреобразование указателя Найти похожие ветки
← →
grisme © (2006-06-08 20:14) [0]Доброго времени суток, господа...:0)
Есть вопрос, возможно ли явно преобразовать 4-байтный адрес в соответствующий тип DWORD(полностью идентичный,естесственно).
Т.е. это фактически необходимо для того, чтобы работать с адресом(точнее его значением), как с числом...
var mp:Pointer;
mdw:DWORD;
begin
mp:=@<нечто>;
mdw:=DWORD(mp);
end;
Получу ли я в mdw соответствующее ЗНАЧЕНИЕ адреса mp?
← →
Джо © (2006-06-08 20:16) [1]А почему сомнения?
← →
tesseract © (2006-06-08 20:17) [2]
> Получу ли я в mdw соответствующее ЗНАЧЕНИЕ адреса mp?
mdw=cardinal(@<нечто>) вроде срабатывало.
← →
grisme © (2006-06-08 20:29) [3]спасибо вам...)
Просто пишу "вслепую"...((
Значит получу..;) Спасибо еще раз..
← →
Piter © (2006-06-08 20:45) [4]Ну блин вопросы... Почему бы не проверить? Watch List рулит...
← →
DillerXX © (2006-06-08 21:58) [5]Уж не имеет ли ввиду автор mdw:=PDWORD(mp)^; ? А то слово "ЗНАЧЕНИЕ" бросилось в глаза
← →
grisme © (2006-06-08 23:19) [6]DillerXX © (08.06.06 21:58) [5]
Нет, не значение ПО ЭТОМУ АДРЕСУ...
указатель ведь просто адрес, в виде числа в 4 байта(в памяти так лежит)...так вот мне и нужно значение этого числа, чтобы им оперировать, как с числом...
← →
MBo © (2006-06-09 06:34) [7]>grisme
На всякий случай - для типизированных указателей работают процедуры Inc и Dec
var
pw: PWord;
Inc(Pw, 2); // сместит указатель на 2*SizeOf(Word)
← →
evvcom © (2006-06-09 08:11) [8]А еще можно и вовсе без присвоения
mdw:=DWORD(mp);
обойтись:var
mp: Pointer;
mdw: DWORD absolute mp;
begin
mp:=@<нечто>;
<другое нечто> := <некое выражение с mdw>;
end;
или еще проще<другое нечто> := <выражение с DWORD(@<нечто>)>;
← →
grisme © (2006-06-09 16:36) [9]Спасибо всем...)
← →
han_malign © (2006-06-09 16:49) [10]
> На всякий случай - для типизированных указателей работают процедуры Inc и Dec
- более того, для PChar - полностью поддерживается адресная арифметика в стиле "С"
(pc+17)^:= "1";
(pc+17)[1]:="7";
← →
DillerXX © (2006-06-09 17:14) [11]
> (pc+17)^:= "1";
> (pc+17)[1]:="7";
Вот дурак =( а я всю жизнь
PChar(DWORD(pc) + 17)[1]:="7";
делал :(
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c