Windows API開發

1. 什麼是Windows API
Windows的API(Application Programming Interface,應用程序編程接口),是Windows操作系統提供
給應用程序的大量函數,開發者調用這些函數,猶如“積木塊”一樣,可以搭建出各種界面豐富,功能靈
活的應用程序。所以可以認爲API函數是構築整個Windows的基石,在它的下面是Windows的操作系統核心,
而它的上面則是所有華麗的Windows應用程序。

應用程序
Windows API       用戶模式
-------------------------
操作系統內核      內核模式
硬件

2. 如何學習Windows API?
Windows API = 學函數

3. Windows API在線文檔
MSDN這是微軟公司面向軟件開發者的一種信息服務。MSDN實際上是一個以Visual Studio和Windows
平臺爲核心整合的開發虛擬社區,包括技術文檔、在線電子教程、網絡虛擬實驗室、微軟產品下載等等一系列服務。
網址:https://msdn.microsoft.com/library

4. Windows API分類
Windows API就是Windows應用程序接口,是針對Microsoft Windows操作系統家族的系統編程接口,
這樣的系統包括Windows 8.1 Windows8 Windows7等幾乎所有版本。WIN32 API也是Microsoft Windows
32位平臺的應用程序編程接口。

Windows API包括幾千個可調用的函數,大致可以分爲幾類:
基礎服務
組件服務
用戶界面服務
圖形多媒體服務
消息和協作
網絡
Web服務

5. 第一個HellWorld應用程序
#include <windows.h>

int WINAPI WinMain(HINSTANCE hlnstance, HINSTANCE hPrevlnstance, LPSTR lpCmdLine, int nCmdShow)
{
    MessageBox(NULL, L"第一個Win32程序", L"hello world", MB_OK);

    return 0;
}


6. 入口函數WinMain詳解
(1)類似於C程序的main函數,Win32應用程序也有一個入口函數WinMain,改函數被系統自動調用,
函數原型如下:
int WINAPI WinMain(
    HINSTANCE hlnstance,  //應用程序當前實例的句柄
    HINSTANCE hPrevlnstance,  //應用程序先前實例的句柄。同一個程序打開兩次,出現兩個窗口
                              //第一次打開的窗口就是先前實例的窗口。對於一個32位程序,該參數
                              總爲NULL
    LPSTR lpCmdLine,      //命令行的字符串的指針,類似C語言中的argc argv,只不過這裏只用了一個參數
                           就可以獲得參數的個數和內容                           
    int nShowCmd          //窗口顯示方式、默認爲SW_SHOWDEFAULT
    );
(2)奇怪的數據類型?
符號                原型                              說明
WINAPI            #define WINAPI  __stdcall          標準調用約定、__stdcall是專門用來調用Win API的
HINSTANCE         struct HINSTANCE__ {int unused;}
                  typedef HINSTANCE__ * HINSTANCE    就是一個結構體類型指針
LPSTR             typedef CHAR *LPSTR;               就是char * 類型
HANDLE            typedef void * HANDLE;             就是一個void類型指針

7. 應用程序實例句柄
WinMain函數的第一個參數hlnstance就是可執行文件的實例句柄,實際上是個內存地址,它指出系統在何處把
EXE文件裝載入進程的地址空間。

8.Windows窗口程序簡介
目前開發Windows窗口程序的主流技術有以下:
技術                        簡介                                                語言
Win32 API               Windows平臺底層API、效率高、難度較高                     C++
MFC框架                 微軟基礎類庫(Microsoft Fundation Class,MFC)             C++
                        對Win32 API的面向對象封裝、難度較高 
QT框架                  跨平臺 UNIX LINUX WINDOWS                                C++
WPF框架                                                                          C#
Windows form                                                                     C# VB

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章