![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Pointer в адрес? [D7, WinXP]
Zoom © (2008-05-05 17:43:00)А как можно Pointer преобразовать в Integer адрес, затем прибавить какое-то значение и обратно в Pointer , вообщем инкрементировать Pointer на какое-то число байт ???
Palladin (2008-05-05 17:52:00) [21]извиняюсь
Inc(PI) - семестит указатель PI на SizeOf(Integer)
Inc(PB) - семестит указатель P Bна SizeOf(Byte)
Inc(PW) - семестит указатель P Wна SizeOf(Word)
Ctrl + Ins, Shift + Ins иногда в такие неудобные положения ставит :)
Palladin (2008-05-05 17:50:00) [22]Есть великое изобретение: type casting. Прочитав любую книженцию про язык программирования турбо паскаль, ты откроешь для себя, что:
Var
p:Pointer;
...
p:=Pointer(Integer(p)+4);
сместит указатель на эти самые 4б.
А почитав любую книженцию про язык программирования Delphi aka Object Pascal, ты откроешь для себя, что:
Var
PI:^Integer;
PB:^Byte;
PW:^Word;
Inc(PI) - семестит указатель PI на SizeOf(Integer)
Inc(PB) - семестит указатель PI на SizeOf(Byte)
Inc(PW) - семестит указатель PI на SizeOf(Word)
и все благодаря Compiler Magic
Читайте книжки, господа.
Игорь Шевченко (2008-05-05 17:47:00) [23]Pointer(Integer(p) + 1234)