今天在移植代码的时候看到了HICON,移植过来之后是未定义的,于是就去查了一下。
HICON 是微软平台bai下的图标句柄。
类似的定义还zhi有HANDLE、HWND、HDC、HBITMAP等。遵循的dao命名规zhuan则为大写shu的H加上大写的句柄类型(其中HANDLE是通用句柄,没有类型)。
在VC/MFC下,句柄其实就是一个用于兼容windows平台下其它编程语言的地址标记定义,其本质,是一个无类型指针:
typedef void *HANDLE;
typedef HANDLE HICON;//实际定义比较复杂,这里简化后还原实际语义。
HICON这类句柄,主要作用是为了使用windows平台的API函数,这类函数是多编程语言通用的,很多语言没有指针,因此定义了这样一个局部类型。(注意:上面的代码只是句柄在C/C++下的定义,在SDK和其它语言环境中,定义不同但兼容)。
而使用到底要加什么头文件呢,其实很常见。
#include <windows.h>
就是这个。