typedef DWORD (CALLBACK *LPFNREGISTER)(DWORD,DWORD);CALLBACK是什么意思?
1 回答

catspeake
TA贡献1111条经验 获得超0个赞
typedef A B
的意思是把B当作和A一样的类型.
你的语句定义了一个函数的类型,类型名字叫LPFNREGISTER,返回值为DWORD,该类型的函数有两个参数都是DWORD类型。
CALLBACK是个在windows.h里面定义的常量,他是这么定义的
#define CALLBACK __stdcall
也就是在CALLBACK的位置,其实是个__stdcall,这是告诉编译器这个函数的调用方式。C语言中有不同的调用方式,比如__stdcall, __cdecl,这个参数是可以省略的,省略之后,编译器则默认为__cdecl的调用方式。但是,微软所有的API都是__stdcall,所以就必须要加上这个参数。你自己也可以定义函数的时候加上这个modifier
int __stdcall Foo();
另外,__stdcall在windows.h中有很多马甲,比较常见的两个是
#define CALLBACK __stdcall
#define WINAPI __stdcall
- 1 回答
- 0 关注
- 250 浏览
添加回答
举报
0/150
提交
取消