直接調用API函數非常的繁瑣. 需要了解壹些Windows窗口和消息循環原理.
舉個例子吧, 下面就是壹個API函數, 需要包含windows.h頭文件, 這個函數用來創建1個窗口;
HWND WINAPI CreateWindowEx(
DWORD dwExStyle, // 窗口擴展風格
LPCTSTR IpClassName,// 窗口類名
LPCTSTR lpWindowName, // 窗口標題
DWORD dwStyle, // 窗口樣式
int x,int y, // 窗口的坐標x y
int nWidth, int nHeight, // 窗口的高度和寬度
HWND hWndParent, // 父級窗口句柄
HMENU hMenu, // 菜單句柄
HANDLE hInstance,// 程序的實例句柄
LPVOID lpParam // 額外參數
);
不要嫌參數多(雖然確實很多), 這都是壹個窗口必不可少的屬性, 事實上調用這個API之前妳還必須填充壹個10個成員的巨大結構, 用來確定窗口的背景, 風格, 圖標等屬性.
為什麽C#創建窗口這麽簡單, C#同樣是調用這個API來創建窗口的, 只不過它把那些細節的東西全都封裝了起來, 程序員看不到了而已, 但是妳如果要用C來寫界面就必須要面對這些.
雖然API繁瑣, 但是和C#相比, 無疑更加能夠讓妳真正理解操作系統的原理和實現細節