估计是微软不想让人知道内核对象的真实内容。
--------------------------
Linux下一样有句柄啊, 其实这类东西的内部实现对于开发者来说应该做到透明。
这种透明对开发人员来说是“好的”, 而不是可以的去隐瞒什么。
分层系统既要屏蔽掉各层的复杂性 ,又要留出接口

解决方案 »

  1.   

    估计是微软不想让人知道内核对象的真实内容。
    --------------------------
    Linux下一样有句柄啊, 其实这类东西的内部实现对于开发者来说应该做到透明。
    这种透明对开发人员来说是“好的”, 而不是刻意的去隐瞒什么。
    分层系统既要屏蔽掉各层的复杂性 ,又要留出接口打错2字
      

  2.   

    我没看过linux,但是估计linux 的内核对像想看是可以看到的,微软的是看不到的。定义为void*,可以理解为方便,指啥都行嘛。不过更多是封装,你无法知道指针指向的对象的数据结构是什么,也就没法去修改。
      

  3.   

    句柄和指针可能还是有些不同, 句柄一般是一个键值,这个键值可以是索引值,可以是地址偏移量
    它与内核中相关信息产生一个一对一的关联。被一个句柄就是不想让开发者被内核中那么多恐怖的复杂的东西吓到。微软的内核虽然是Undocumented的, 不过
    你一定要支持 HDC是什么,怎么管理的, 可以通过方向工程来获取它原始的结构。
      

  4.   

    句柄和指针可能还是有些不同, 句柄一般是一个键值,这个键值可以是索引值,可以是地址偏移量
    它与内核中相关信息产生一个一对一的关联。给一个句柄就是不想让开发者被内核中那么多恐怖的复杂的东西吓到。微软的内核虽然是Undocumented的, 不过
    你一定要知道 HDC是什么,怎么管理的, 可以通过方向工程来获取它原始的结构。 
    额,老打错字
      

  5.   

    句柄就是一种资源。
    在windows中对于每一个创建的资源都有一个handle,
      

  6.   

    句柄的实质说白了就是其和指针的关系一般来说,句柄的提出是对应指针的缺点的,想象一下,如果微软把所遇的返回句柄改成指针,这对于系统是极其危险地,没有经验的程序员很可能直接操作指针,飞来飞去,系统崩溃的可能性增加,另外对于微软来说,直接返回句柄,对于那些想窥探Windows秘密的人来说太方便了,另外指针不利于进程之间数据共享。基于以上原因,为了对程序员隐藏更多的信息, 微软更多的是返回句柄,而不是指针。句柄唯一标识了创建的对象,类似于身份证,句柄和对象一一对应,可以相互映射,这种映射关系是微软制定的,而且有可能变更,因此没有文献可查句柄和指针是典型的基于表格的映射,Windows维护这一个庞大的对象表,句柄其实就是这个表格里面的索引,通过这个索引就可以访问到实际的数据对象
      

  7.   

    另外对于微软来说,直接返回句柄,对于那些想窥探Windows秘密的人来说太方便了改为另外对于微软来说,直接返回指针,对于那些想窥探Windows秘密的人来说太方便了
      

  8.   

    句柄就是一个代号,类型是不是void*不重要,只是供编译的需要。windows里面有各种形形色色的句柄,有的确实是 虚存地址(loadLbrary),大部分的 都是一个进程句柄表的索引
    有的句柄是全局的(HWND),但大部分的都是 进程相关的句柄是什么类型并不重要,重要的是了解各种句柄的分类及其含义
      

  9.   

    句柄就是一个结构体的指针,因为涉及win内核,容易变更升级,所以不便暴露。要想知道是什么,其实有一个低下方法,只是你没想到。