1、在windows程序中,經(jīng)常會(huì)用到這種位標(biāo)志標(biāo)識(shí)符,如:style = CS_HREDRAW | CS_VREDRAW ; CS_HREDRAW = 0x0001 ; CS_VREDRAW = 0x0002; 2、窗口過(guò)程函數(shù):是一個(gè)回調(diào)函數(shù)?;卣{(diào)函數(shù)不是由該函數(shù)的實(shí)現(xiàn)方直接調(diào)用,而是在特定的事件或條件發(fā)生時(shí),由另一方調(diào)用的,用于對(duì)該事件或條件進(jìn)行響應(yīng)。 3、回調(diào)函數(shù)的使用方法: 1)定義一個(gè)回調(diào)函數(shù)。 2)定義方,在初始化時(shí),將回調(diào)函數(shù)的指針傳注冊(cè)給調(diào)用者。 3) 當(dāng)事件或條件發(fā)生時(shí),調(diào)用者使用指針回調(diào)該函數(shù)。 4、_cdecl 和 _stdcall __cdecl 是C DECLaration的縮寫(xiě)(declaration,聲明),表示C語(yǔ)言默認(rèn)的函數(shù)調(diào)用方法:所有參數(shù)從右到左依次入棧,這些參數(shù)由調(diào)用者清除,稱(chēng)為手動(dòng)清棧。被調(diào)用函數(shù)不會(huì)要求調(diào)用者傳遞多少參數(shù),調(diào)用者傳遞過(guò)多或者過(guò)少的參數(shù),甚至完全不同的參數(shù)都不會(huì)產(chǎn)生編譯階段的錯(cuò)誤。 _stdcall 是StandardCall的縮寫(xiě),是C++的標(biāo)準(zhǔn)調(diào)用方式:所有參數(shù)從右到左依次入棧,如果是調(diào)用類(lèi)成員的話(huà),最后一個(gè)入棧的是this指針。這些堆棧中的參數(shù)由被調(diào)用的函數(shù)在返回后清除,使用的指令是 retnX,X表示參數(shù)占用的字節(jié)數(shù),CPU在ret之后自動(dòng)彈出X個(gè)字節(jié)的堆??臻g。稱(chēng)為自動(dòng)清棧。函數(shù)在編譯的時(shí)候就必須確定參數(shù)個(gè)數(shù),并且調(diào)用者必須嚴(yán)格的控制參數(shù)的生成,不能多,不能少,否則返回后會(huì)出錯(cuò)。 int WINAPI WinMain( 【說(shuō)明】 #define WINAPI __stdcall typedef CHAR *LPSTR, *PSTR; |
|
來(lái)自: fisher60 > 《學(xué)習(xí)筆記》