有谁知道进程中句柄和PID有什么区别?

来源:百度知道 编辑:UC知道 时间:2024/05/27 01:35:16
有谁知道进程中句柄和PID有什么区别?

什么是句柄?
先来看些权威的片断: ... typedef unsigned int HANDLE; #define DECLARE_HANDLE(name) typedef UINT name DECLARE_HANDLE(HMODULE); DECLARE_HANDLE(HINSTANCE); DECLARE_HANDLE(HLOCAL); DECLARE_HANDLE(HGLOBAL); DECLARE_HANDLE(HDC); DECLARE_HANDLE(HRGN); DECLARE_HANDLE(HWND); DECLARE_HANDLE(HMENU); DECLARE_HANDLE(HACCEL); DECLARE_HANDLE(HTASK); ... #define DECLARE_HANDLE(x) typedef WORD x ... //+------------------------------------------------------------------------- // DECLARE_HANDLE Macro //-------------------------------------------------------------------------- #ifndef DECLARE_HANDLE #define DECLARE_HANDLE(name) \ struct name##__ { DWORD unused; }; \ typedef struct name##__ _far* name #endif ... 知道本质了吧~~~~ WINDOWS程序中并不是用物理地址来标识一个内存块,文件,任务或动态装入模块的,相反的,WINDOWS API给这些项目分配确定的句柄,并将句柄返回给应用程序,然后通过句柄来进行操作。 在<<WINDOWS编程短平快>>(南京大学出版社)一书中是这么说的:句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。WINDOWS句柄有点象C语言中的文件句柄。 从上面的2个定义中的我们可以看到,句柄是一个标识符,是拿来标识对象