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 關注
- 239 瀏覽
添加回答
舉報
0/150
提交
取消