record类型的数据怎么转存到TMemoryStream流中!(100分)

  • 主题发起人 主题发起人 hilinker
  • 开始时间 开始时间
H

hilinker

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样把如下的record中的数据保留到TMemoryStream流中:
temp= record
test1 : DWORD;
test2 : HIC;
test3 : PBITMAPINFO;
test4 : Pointer;
end;
我试过了以下方法
tmp_stream:= TMemoryStream.create();
tmp_stream.setsize(sizeof(temp));
tmp_stream.Write(temp,sizeof(temp) );
tmp_stream.Read(temp,sizeof(temp) );
但好像temp结构中的指针变量都每、没保存进去,哪位高人有其他好的办法吗?
 
指针不能保存

http://www.delphibbs.com/delphibbs/dispq.asp?lid=1768054
 
指针变量必须将指针中的内容取出来才能存:
tmp_stream:= TMemoryStream.create();
tmp_stream.Write(temp,sizeof(temp) );
tmp_stream.Write((temp.test3)^ ,length of (temp.test3 ));
tmp_stream.Write((temp.test4)^ ,length of (temp.test4 ));

tmp_stream.Read(temp,sizeof(temp) );
tmp_stream.Read((temp.test3)^ ,length of (temp.test3 ));
tmp_stream.Read((temp.test3)^ ,length of (temp.test3 ));
其中 length of()为你的当前指针的长度!
 
多谢二位指点,解决了,就用hxygod的方式,分送上了
 
多人接受答案了。
 
后退
顶部