剪贴板复制的问题 ( 积分: 30 )

  • 主题发起人 主题发起人 awfigsk
  • 开始时间 开始时间
A

awfigsk

Unregistered / Unconfirmed
GUEST, unregistred user!
这样一段代码:<br>var<br> &nbsp;Data:THandle;<br> &nbsp;DataPtr:Pointer;<br>...<br> &nbsp;Data:=GlobalAlloc(GMEM_MOVEABLE,SizeOf(TdataRec));<br> &nbsp;DataPtr:=GlobalLock(Data);<br>...<br>Data与DataPtr有何区别?<br>能不能这样理解:<br>在GlobalAlloc分配一个内存空间给Data,Data是这个内存空间的首地址。<br>GlobalLock锁定该内存空间,DataPtr是指向Data的指针<br><br>这样理解对吗?还请高手指点!谢谢!
 
这样一段代码:<br>var<br> &nbsp;Data:THandle;<br> &nbsp;DataPtr:Pointer;<br>...<br> &nbsp;Data:=GlobalAlloc(GMEM_MOVEABLE,SizeOf(TdataRec));<br> &nbsp;DataPtr:=GlobalLock(Data);<br>...<br>Data与DataPtr有何区别?<br>能不能这样理解:<br>在GlobalAlloc分配一个内存空间给Data,Data是这个内存空间的首地址。<br>GlobalLock锁定该内存空间,DataPtr是指向Data的指针<br><br>这样理解对吗?还请高手指点!谢谢!
 
指针和指针的指针,这样理解没问题吧?我也是这样理解的呢。
 
Data是一个THandle类型,也即LongWord类型;<br>当 Data:=GlobalAlloc(GMEM_MOVEABLE,SizeOf(TdataRec)) 时,Data为GlobalAlloc的实际返回值,而这时DataPtr只是一个分配4字节指针类型声明。<br>当DataPtr := GlobalLock(Data) 时 DataPtr就是指向Data的指针空间。<br>相当于 DataPtr := @Data;
 
Data不是一个指针吗?Data是这个内存空间的首地址吗?而DataPtr是指向Data这个首地址的指针吗?
 
后退
顶部