1、在windows程序中,经常会用到这种位标志标识符,如:style = CS_HREDRAW | CS_VREDRAW ; CS_HREDRAW = 0x0001 ; CS_VREDRAW = 0x0002;
2、窗口过程函数:是一个回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时,由另一方调用的,用于对该事件或条件进行响应。
3、回调函数的使用方法:
1)定义一个回调函数。
2)定义方,在初始化时,将回调函数的指针传注册给调用者。
3) 当事件或条件发生时,调用者使用指针回调该函数。
4、_cdecl 和 _stdcall
__cdecl 是C DECLaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。被调用函数不会要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。
_stdcall 是StandardCall的缩写,是C++的标准调用方式:所有参数从右到左依次入栈,如果是调用类成员的话,最后一个入栈的是this指针。这些堆栈中的参数由被调用的函数在返回后清除,使用的指令是 retnX,X表示参数占用的字节数,CPU在ret之后自动弹出X个字节的堆栈空间。称为自动清栈。函数在编译的时候就必须确定参数个数,并且调用者必须严格的控制参数的生成,不能多,不能少,否则返回后会出错。
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // command line
int nCmdShow // show state
)
【说明】
#define WINAPI __stdcall
typedef CHAR *LPSTR, *PSTR;