﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-冰凌</title><link>http://www.cppblog.com/wingzero/</link><description>爱上c++</description><language>zh-cn</language><lastBuildDate>Wed, 10 Jun 2026 00:23:20 GMT</lastBuildDate><pubDate>Wed, 10 Jun 2026 00:23:20 GMT</pubDate><ttl>60</ttl><item><title>内存句柄HGLOBAL</title><link>http://www.cppblog.com/wingzero/archive/2008/12/25/onezero.html</link><dc:creator>winone</dc:creator><author>winone</author><pubDate>Thu, 25 Dec 2008 07:37:00 GMT</pubDate><guid>http://www.cppblog.com/wingzero/archive/2008/12/25/onezero.html</guid><wfw:comment>http://www.cppblog.com/wingzero/comments/70331.html</wfw:comment><comments>http://www.cppblog.com/wingzero/archive/2008/12/25/onezero.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/wingzero/comments/commentRss/70331.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wingzero/services/trackbacks/70331.html</trackback:ping><description><![CDATA[&nbsp;
<p><span>HGLOBAL </span><span>这个是</span><span>windows </span><span>定义的数据类型。</span></p>
<p><span>这是个句柄，标示一个内存区，不是指针。在对内存区的操作中，一般用指针，从这个</span><span>handle</span><span>可以得到指针，然后就可以对内存区进行操作了。</span><span> &nbsp; <br>&nbsp; -------------------------------------------------- &nbsp; <br>&nbsp; eg: &nbsp; &nbsp; </span><span>开一个</span><span>200byte</span><span>的内存区，在里面赋值</span><span> &nbsp; <br>&nbsp; HGLOBAL &nbsp; hMemHandle=::GlobalAlloc(GHND,50*sizeof(int)); &nbsp; //</span><span>得到</span><span>handle &nbsp; <br>&nbsp; int &nbsp; *p=(int &nbsp; *)::GlobalLock(hMemHandle); &nbsp; //</span><span>从</span><span>handle</span><span>得到指针</span><span> &nbsp; &nbsp; <br>&nbsp; for(int &nbsp; k=0;k&lt;50;k++) &nbsp; *(p+k)=k; &nbsp; <br>&nbsp; char &nbsp; s[128]; &nbsp; <br>&nbsp; sprintf(s,"testing:p[49]=%i",p[49]); &nbsp; <br>&nbsp; ::GlobalUnlock(hMemHandle); // &nbsp; <br>&nbsp; ::GlobalFree(p); &nbsp; <br>&nbsp; AfxMessageBox(s);&nbsp;&nbsp;&nbsp;<br><br>&nbsp;</span><span>开辟一个新的内存区域，用一指针指向此地址区域，通过指针完成对内存区域的操作。记住用指针指向的时候要 ::</span><span>GlobalLock(), </span><span>操作完成后，</span><span>::GlobalUnlock()</span><span>此内存区域的句柄，然后，</span><span>::GlobalFree()</span><span>掉此指针。</span></p>
<img src ="http://www.cppblog.com/wingzero/aggbug/70331.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wingzero/" target="_blank">winone</a> 2008-12-25 15:37 <a href="http://www.cppblog.com/wingzero/archive/2008/12/25/onezero.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>