这个问题问得很多,你找找旧贴
先贴一个旧贴给你看看VB的话说,句柄就是FORM在进程中的一个标号。每次运行都会不一样。
在VC里也应该也差不多。 
 
回复人:lhxx(2000-12-18 16:41:00)  得0分 
简单说是一个数值,用来描述对象什么的 
 
回复人:Elkel(2000-12-18 16:43:00)  得0分 
句柄实际上是void *,用来作为系统内唯一的id,可以标记窗口、文件、内存块等 
 
回复人:sxbyl(2000-12-18 17:51:00)  得0分 
你可以认为句柄就是一个ID
To:Elkel  句柄一般不是指针 
 
回复人:jimconrad(2000-12-18 18:46:00)  得0分 
旧贴:搜索-->“句柄” 
 
回复人:explore(2000-12-18 19:32:00)  得0分 
形象地说,你想控制它,就要先抓住它的把柄 
 
回复人:yhspring(2000-12-18 19:41:00)  得0分 
句柄的作用类似指针,但它并非指针。它付与对象一个标shi。标是一块内存,利用它可以操作这块内存,在mfc中常常需要将句柄与指针转换。 
 
回复人:yhspring(2000-12-18 19:48:00)  得0分     句柄在winnt.h中是这么定义的:#ifdef STRICT
typedef void *HANDLE;
#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
#else
typedef PVOID HANDLE;
#define DECLARE_HANDLE(name) typedef HANDLE name
#endif    STRICT修饰符的意思是变量类型是否要求严格定义。在这里,我们可以看到HANDLE其实就是一个void类型的指针。这样有什么用呢?学过c/c++语言的人都知道,void类型的指针可以通过强制类型转换变为任何类型的指针,使用最灵活。    在很多情况下,句柄是一个对象的指针,或者说是地址,一个对象的地址。比如对于分配的一个内存块(对象),它的句柄就是它的首地址,这没什么问题。    但是这并不总是成立的,对于没有对象意义的句柄尤其如此。这就取决与系统的定义了。比如系统钩子的类型HHOOK,说它是地址就没有任何意义。对于窗口句柄也是如此。在这些情况下,我们可以把句柄理解为某事物在系统该类事物列表中的ID。    是不是加点分呀?我从来没回答过50分以下的题目。:)贴上这段贴子,参考一下。 
 
回复人:yaoliuba(2000-12-19 11:15:00)  得0分 
谢谢! 
 
回复人:sxbyl(2000-12-19 11:31:00)  得0分 
按我的理解,句柄不一定仅限于HANDLE,象HWND之类
不过看了大家的回答,看来我以前的看法是错的,应该说大多数句柄都是指针 
 
回复人:xqf(2000-12-19 14:57:00)  得0分 
句柄类似于指针,但不等同于指针!如果等同于指针那还#define干吗呀!那还叫什么“句柄”呢?这点就象ID。不过实质是一样的,都代表一段内存区的首址,这是绝对的!但作用可能不同,这点就象yhspring先生说的那样。 
 
回复人:jadedrip(2000-12-19 20:24:00)  得0分 
句柄的概念很想指针,但句柄不是指针,不指向地址,它指向的东东是通过操作系统提供的函数来操作的,不能 自己乱用。 
 
回复人:yaoliuba(2000-12-20 12:23:00)  得0分 
对Win32应用程序编程接口的封装 
用一个C++ Object来包装一个Windows Object。例如:class CWnd是一个C++ window object,它把Windows window(HWND)和Windows window有关的API函数封装在C++ window object的成员函数内,后者的成员变量m_hWnd就是前者的窗口句柄。
这或许是一方面吧!----------yaoliuba 
 
 
回复人:chimpyu(2000-12-20 15:42:00)  得0分 
句柄在WINDOWS中用于标识系统资源,例如窗口、位图,在程序中我们可以用变量名来区别他,但对于WINDOWS来说,他只不过是一个整数,用于加以区别 
 
回复人:wao(2000-12-20 16:53:00)  得0分 
句柄是什么?呵呵,句柄什么都不是,只是句柄而已。其实要说句柄是什么还得从windows3.0谈起。在windows3.0的实模式中,大家共用内存,为了提高内存使用率,windows必须能够移动内存,可是实模式下,没有现在这种虚存,就是硬件指针影射的功能,所以microsoft就发明了句柄。windows内部保留一个句柄和实际地址的影射表,这样你在使用内存前就必须lock住句柄,windows就返回一个指针。所以你看win32 api,其中好多lock打头的api就是那个时代的遗迹。现在句柄可以说是一个古迹了,简单的指向实际了内存块了。不过microsoft可是保留权力改变句柄的内容。也许将来分布编程模式下,又会恢复句柄的原始涵义。 
 
回复人:plt560zj(2000-12-20 17:03:00)  得0分 
句柄远不止是一个指针。windows程序认为资源,如窗口、图标、光标等都有一个句柄。在屏幕后有一个句柄表,跟踪资源的地址和资源类型的信息。之所以称为句柄是因为程序使用它作为得到一个资源的方法。句柄的典型用法是传递到需要使用资源的函数,和从分配资源的函数中返回。
不管所使用的是哪种句柄,都要记住它是调用资源、并可使用资源的一种方法。