Главная страница
    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.008 c
6-1141307342
wezzz
2006-03-02 16:49
2006.07.09
как получить сетевое имя файла?


3-1147263291
SHD
2006-05-10 16:14
2006.07.09
И снова значения по умолчанию.


2-1150330349
Призрак
2006-06-15 04:12
2006.07.09
Передать THandle в поток


2-1150972496
Neket
2006-06-22 14:34
2006.07.09
И снова DBGrid


2-1150426765
Pagoo-man
2006-06-16 06:59
2006.07.09
Проблема с экспортом в Excel





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский