![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Записать Pointer в TMemoryStream. Как?
trylok © (2014-06-06 18:06:00)Не пойму как записать содержимое P в MS. Через SetPoiner? Но как тогда определить размер содержимого P? Что передать в качестве второго параметра SetPointer - const ASize: NativeInt?
procedure Set(const P: Pointer);
var
MS: TMemoryStream;
begin
MS := TMemoryStream.Create;
try
MS. // <- Записать содержимое P в MS
finally
MS.Free;
end;
end;
brother (2014-06-07 13:59:00) [1]в параметры добавить Size: integer ?
RWolf (2014-06-07 13:54:00) [2]а лучше вообще не использовать указатели, в дельфях масса более удобных механизмов.
Юрий Зотов (2014-06-07 13:50:00) [3]А есть ли вообще смысл писать в поток сам указатель? Содержимое того, на что он указывает - это понятно. А указатель-то зачем?
DVM (2014-06-07 00:38:00) [4]Ну если память на которую указывает указатель выделялась дельфийским менеджером памяти,то размер там есть по отрицательному смещению, но лучше конечно хранить размер явно без этих выкрутасов.
Inovet (2014-06-06 20:10:00) [5]В функцию вместе с поинтером передать и размер.
Palladin (2014-06-06 19:58:00) [6]
> trylok (06.06.14 18:06)
ну это же твой поинтер, как ты не знаешь размер
sniknik (2014-06-06 19:03:00) [7]поинтер эту указатель, откуда у него размер содержимого (и вообще содержимое)? вот зажмурься покрутись вокруг себя, после ткни куда нибудь пальцем, открывай глаза смотря строго на палец... какой размер у того на что он указывает?
можно только у типизированного указателя размер данных узнать (типизированный это такой специальный "палец" который указывает только на что то конкретное... например на поллитру, или бочоночек пива).