⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_25837.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:25837 发表者:崔明亮 发表日期:2002-12-26 10:10:21
<br>主题:请问一个很简单的问题
<br>内容:在C++里已经有了指针的概念,为什么在Windows 里还要引入句柄?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:tjhe 回复日期:2002-12-26 10:16:23
<br>内容:http://www.copathway.com/cndevforum/subject_view.asp?subject_id=16658&amp;forum_id=34
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:bb 回复日期:2002-12-26 12:34:32
<br>内容:HANDLE 是一个指针。<BR>引入句柄,其实是信息隐藏的一种技术。<BR><BR>例如:<BR>Myobj.h<BR><BR>typedef void* HANDLE;<BR><BR>HANDL OpenObj(const char *ObjName);<BR>int DoSomthingWithObj(HANDLE obj, int param);<BR>...<BR>void CloseObj(HANDLE obj);<BR><BR>Myobj.c<BR><BR>type struct {<BR>&nbsp;&nbsp;char name[100];<BR>&nbsp;&nbsp;int property1;<BR>&nbsp;&nbsp;float property2;<BR>&nbsp;&nbsp;....<BR>}OBJ;<BR><BR>HANDL OpenObj(const char *ObjName)<BR>{<BR>&nbsp;&nbsp; OBJ *p=(OBJ*)malloc(sizeof( OBJ));<BR>&nbsp;&nbsp; strcpy(p-&gt;name,ObjName);<BR>&nbsp;&nbsp; 给其他字段赋初值<BR>&nbsp;&nbsp; ...<BR>};<BR>int DoSomthingWithObj(HANDLE obj, int param)<BR>{<BR>&nbsp;&nbsp; OBJ *p=(OBJ*)obj;<BR>&nbsp;&nbsp; 使用p;<BR>}<BR>...<BR>void CloseObj(HANDLE obj)<BR>{<BR>&nbsp;&nbsp; OBJ * p=(OBJ*)obj;<BR>&nbsp;&nbsp; 释放p相关资源<BR>&nbsp;&nbsp; free(p);<BR>}<BR><BR>在例子中,Myobj.c在编译后形成lib,而myobj.h提供给其他人使用。<BR>这时OBJ结构的细节被隐藏。<BR>Windows中大量使用这种方式隐藏真实数据结构。<BR>有谁清楚HWND背后描述Window的具体数据结构呢?(Bill Gates)
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -