C
crob
Unregistered / Unconfirmed
GUEST, unregistred user!
我的delphi函数接收从VC传过来的结构指针,些结构指针中的一结构成员也是pointer型的。
如何实现内存拷贝,将一个指针地址中的内容拷贝到另一个指针地址中?
第一个指针参数通过定义p: ^TResponse;的结构指针类型后然后再对 p^ 附值传出去了。
可是TResponse结构中还有另一个成员是pointer型的,也要指向另一个结构,由于该结构要
与VC保持同步所以没法定义成结构指针类型,必须进行内存拷贝!
我先后试过
var rt:TResponse
.........
rt.Buffer := AllocMem(SizeOf(rtBuffer)); //rt.buffer为Tresponse中的一个指针成员
Strcopy(rt.Buffer, @rtBuffer); ......失败
还有人教我使用
var Stream : TMemoryStream;
........
Stream := TMemoryStream.Create;
Stream.ReadBuffer(rtBuffer,SizeOf(TregReturn)); //调试到此处说不能读取
Stream.WriteBuffer(rt.Buffer,SizeOf(TregReturn));
Stream.Free;
我找了半天也没有找到相关的函数,这种操作在C++中是很容易实现的呀,难道是pascal
语言的不足吗?请帮帮我!的目的,难道是pascal的缺陷吗?
如何实现内存拷贝,将一个指针地址中的内容拷贝到另一个指针地址中?
第一个指针参数通过定义p: ^TResponse;的结构指针类型后然后再对 p^ 附值传出去了。
可是TResponse结构中还有另一个成员是pointer型的,也要指向另一个结构,由于该结构要
与VC保持同步所以没法定义成结构指针类型,必须进行内存拷贝!
我先后试过
var rt:TResponse
.........
rt.Buffer := AllocMem(SizeOf(rtBuffer)); //rt.buffer为Tresponse中的一个指针成员
Strcopy(rt.Buffer, @rtBuffer); ......失败
还有人教我使用
var Stream : TMemoryStream;
........
Stream := TMemoryStream.Create;
Stream.ReadBuffer(rtBuffer,SizeOf(TregReturn)); //调试到此处说不能读取
Stream.WriteBuffer(rt.Buffer,SizeOf(TregReturn));
Stream.Free;
我找了半天也没有找到相关的函数,这种操作在C++中是很容易实现的呀,难道是pascal
语言的不足吗?请帮帮我!的目的,难道是pascal的缺陷吗?