Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.009 c
15-1150011125
Yanis
2006-06-11 11:32
2006.07.09
Где WASM.RU?


1-1148648699
001
2006-05-26 17:04
2006.07.09
Стрелка в Excel


4-1143884265
Malik
2006-04-01 13:37
2006.07.09
Прописание программы в автозагрузку после первого включения


2-1151048589
zdm
2006-06-23 11:43
2006.07.09
Найти день рождения(MS Access)


2-1150790362
Новичек
2006-06-20 11:59
2006.07.09
Закрытие файла.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский