为什么非要引入句柄不可?
句柄有什么特点
虽然我一直在用VC,可是对这个问题依然不得要领
希望详细回答

解决方案 »

  1.   

    C++里的是单纯的
    VC里的是综合的
    还没仔细研究过...
      

  2.   

    我记得有位说过:
    “牧童谣指杏花村”
    其中
    杏花村是对象,手指是指针,杏花村的旗子是句柄。
    注:这里的“我”非herrycsdn
      

  3.   

    简单点说句柄包含的内容比指针多一些(指针的内容仅是对象的地址!!!)。具体的在MSDN中有详细的解释!!!
      

  4.   

    句柄一般是指对象的一个能够标志这对象的成员变量。一般是个长整数。致真应该与句柄有很大的差别,也可以说没有什么联系。例如:
    CDialog *pDlg;pDlg是指针;
    pDlg->hWnd是句柄;
      

  5.   

    呵呵,楼主还是看看MSDN吧!MSDN的解释如下:
    A number assigned to a window that is used by the operating system to keep track of the attributes of the window. In a C or C++ library, a handle is a pointer.
    附翻译:句柄就是操作系统用来分配给需要保存属性的窗口的数字,在C或C++库里,句柄就是指针!!!!!!
    有什么问题,可以发消息给我!!
      

  6.   

    发信人: sebsdin (孤灯下), 信区: VisualC 标  题: Re: windows编程中的句柄(handle)是什么意思(新手) 发信站: BBS 水木清华站 (Wed Mar 21 21:08:13 2001)   句柄是一种指向指针的指针。我们知 道,所谓指针是一种内存地址。应用程序启动后 ,组成这 个程序的各对象是住留在内存的。如果简单地理解,似乎我们只要获知这个内存的首地 址, 那么就可以随时用这个地址 访问对象。但是,如果您真的这样认为,那么您就大错特错 了。 我们知道,Windows是一 个以虚拟内存为基础的操作系统。在这种系统环境下,Window s内存 管理器经常在内存中来回移动对象,依此来满足各种应用程序的内存需要。对象被移动 意味着 它的地址变化 了。如果地址总是如此变化,我们该到哪里去找该对象呢? 为了解决这个问题,Windows操作系统为各应用程序腾出一些内存储地址, 用来专门 登记各应用对象在内存中的地址变化,而这个地址(存储单元的位置)本身是不 变的。 Windows内存管理器在移动对象在内存中的位置后,把对象新的地址告知这个句柄地址来 保存。 这样我们只需记住这个句柄地址就可以间接地知道对象具体在内存中的哪个位置。 这个地址是在对象装载(Load)时由系统分配给的,当系统卸载时(Unload)又释放给系统  。 句柄地址(稳定)→记载着对象在内存中的地址────→对象在内存中的地址(不稳定)  →实际对象 但是,必须注意的是程序每次从新启动,系统不能保证分配给这个程序的句柄还是原来 的那个句柄, 而且绝大多数情况的确不一样的。假如我们把进入电影院看电影看成 是一个应用程序的 启动运行, 那么系统给应用程序分配的句柄总是不一样,这和每次电 影院售给我们的门票总是不同 的一个座位 是一样的道理。