神秘的HANDLE,神秘的WIN32,神秘的MICROSOFT
句柄(HANDLE)到底是什么东西?
我原来一直没有思考过这个问题,
原来认为句柄就是1个编号而已,拿来使用就是了,
最近因为某种原因,需要探究HDC的内部细节,
句柄的实质的问题又重新浮出水面,
有一点WIN32编程经验的程序员肯定都知道句柄是什么东西,
可是句柄到底是什么东西呢?
有没有人能够真正的说清楚句柄的实质?
有人说句柄就是指针,
确实,对HINSTANCE,HMODULE而言,
句柄100%是指针,
但是,对HWND,HDC而言,
如果你说HWND,HDC是指针,
你可能100%是错误的,
比如通常情况下,一个 hDC = 0xFF012345; 时,
那么有一些WINDOWS WIN32编程经验的程序员肯定都知道,
像HWND,HDC的这样的通常的值告诉你这根本就不可能是一个指针,
再看WIN32,
WIN32的常用函数SelectObject,DeleteObject,
这很容易让人联想到C++的面向对象的“对象”,
那么这个SelectObject,DeleteObject中的Object是不是就是C++的面向对象的“对象”的对象呢?
此对象是否就是彼对象呢?
可是熟悉WIN32编程的程序员都知道,
WIN32的使用与“面向对象”四个字八杆子打不着,
神秘的HANDLE,神秘的WIN32,神秘的MICROSOFT,
MICROSOFT是不是对我们隐藏了什么?