📄 subject_25837.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&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> char name[100];<BR> int property1;<BR> float property2;<BR> ....<BR>}OBJ;<BR><BR>HANDL OpenObj(const char *ObjName)<BR>{<BR> OBJ *p=(OBJ*)malloc(sizeof( OBJ));<BR> strcpy(p->name,ObjName);<BR> 给其他字段赋初值<BR> ...<BR>};<BR>int DoSomthingWithObj(HANDLE obj, int param)<BR>{<BR> OBJ *p=(OBJ*)obj;<BR> 使用p;<BR>}<BR>...<BR>void CloseObj(HANDLE obj)<BR>{<BR> OBJ * p=(OBJ*)obj;<BR> 释放p相关资源<BR> 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 + -