国产成人精品a视频一区www_国产区视频在线观看_99色视频_欲色av_亚洲一区电影_亚洲综合视频一区

WIN32/API/SDK/MFC四者之間的聯系和區別

來源:網絡

點擊:2101

A+ A-

所屬頻道:新聞中心

關鍵詞: WIN32,API,SDK,MFC

      1、WIN32是不是就是指API?

            如果不是的話,WIN32具體是什么東西。

      不是,API你可以理解成系統函數(應用程序接口),Win32是一個子系統。Win32是Windows的一個子系統,還有另外的子系統如OS/2、POSIX、WOW等。不同的子系統系統提供了不同的編程接口,即API,一般說的API指的就是Win32 API。

      2、SDK和API的關系是什么?

      可以說SDK靠千萬的API進行支撐。打個比方,他的窗體的創建都是靠一系列的API實現的。

      MFC當然也可以調用API,SDK也行。

      3、SDK和MFC的區別是什么?

      MFC是對SDK的封裝,通過MFC的一些方法實現,實質上還是調用了API進行實現。這就是封裝的好處,加快了開發的速度,減低了開發的難度。

      上面大家都說Win32是一個子系統,這個當然是對的,不過我們有時候我們所說Win32通俗的就是指32位的Windows系統,從windows95/98到NT/2000/XP都是32位Windows。子系統卻是僅對NT架構的系統而言的。我想樓主所問的Win32并不是子系統。

      API就是應用程序接口,是由系統提供的一些函數,比如你想創建一個文件,就要調用CreateFile,這個CreateFile就是一個API。任何一個操作系統都會提供API的,比如DOS也提供API,不過它是通過Int 21h中斷提供的就是了。

      SDK是指一些公司針對某一項技術為軟件開發人員制作的一套輔助開發或者減少開發周期的工具。一般專指Windows系統提供的相關的頭文件和LIB文件。

      有時候很多人將不用MFC等相關類庫,而只用API進行開發的方式也叫做SDK開發,從這一點來說,API和SDK似乎是通用的。

     

      MFC是MS對API的一個封裝,也就是一個C++類庫,當然MFC比一般類庫龐大,所以有人稱之為應用程序框架。但其本質還是一個類庫

      Windows程序有用戶態和核心態的說法。在32位地址空間中,0x80000000以下屬于用戶態,0x80000000以上屬于核心態。所有硬件管理都在核心態。用戶態程序的不能直接使用核心態的任何代碼。所謂核心態其實只是CPU的一種保護模式。在x86 CPU上,用戶態處于ring 3,核心態處于ring 0。

      從用戶態進入核心態的最常用的方法是在寄存器eax填一個功能碼,然后執行int 2e。這有點像DOS時代的DOS和BIOS系統調用。在NT架構中這種機制被稱作system service。

      在核心態提供system service的有兩個家伙:ntoskrnl.exe和win32k.sys。ntoskrnl.exe是Windows的大腦,它的上層被稱為Executive,下層被稱作Kernel。Win32k.sys提供與顯示有關的system service。

      在用戶態一側,有一個重要的角色叫作ntdll.dll,大多數system service都是它調用的。它封裝這些system service,然后提供一個API接口。這個接口被稱作native API。 native API的用戶是各個子系統(subsystem),包括Win32子系統、OS/2子系統、POSIX子系統。各個子系統為Win32、OS2、POSIX程序提供了運行平臺。

      ntdll.dll由于提供了平臺無關的API接口,所以被看作是NT系統的原生接口,由之得到了“native API”的匪號。其實它的主要工作是將調用傳遞到核心態。

      Win32、OS/2、POSIX,聽起來很龐大。其實真正做好的只有Win32子系統。OS2、POSIX都是Console UI,即只有字符界面。提供OS/2子系統,只因為在1988年,NT的主要設計目標就是與OS/2兼容,后來由于Windows 3.0賣得很好,所以設計目標被變更為與Windows兼容。提供POSIX子系統,是為了應付美國政府的一個編號為FIPS 151-2的標準。

      Win32子系統的管理員是一個叫作csrss.exe的弟兄,它的全名是:Client/Server Run-Time Subsystem。它剛上任時,本來要分管所有的子系統,但后來POSIX和OS/2都被分別處理了,所以只管了一個Win32。即使這樣也很了不起,所有的Win32程序的進程、線程們都要向它登記。

      不過Win32程序用得最多的還是Win32子系統的DLL們,最核心的DLL包括:kernel32.dll、User32.dll、Gdi32.dll、Advapi32.dll。這些DLL包裝了ntdll.dll的native API。其中Gdi32.dll比較特殊,它與核心態的win32k.sys直接保持聯系,以提高NT系統的圖形處理能力。Win32子系統的DLL們提供的接口函數在MSDN文檔中被詳細介紹,它們就是Win32 API。

    (審核編輯: 智匯小新)

    聲明:除特別說明之外,新聞內容及圖片均來自網絡及各大主流媒體。版權歸原作者所有。如認為內容侵權,請聯系我們刪除。

    主站蜘蛛池模板: www.免费看黄 | 欧美日韩一区二区中文字幕 | 精品一区二区三区四区五区 | 国产一区二区观看 | 午夜私人福利 | 999精品在线 | 午夜精品久久久久久久久久久久 | 国产精品久久久久久久久久久久久 | 亚洲一区av | 亚洲成av | 涩涩视频在线看 | 久久人人爽av | 免费成人在线网站 | 91麻豆精品国产91久久久更新时间 | 狠狠综合久久av一区二区小说 | 久久久久高清 | 欧美一区二区三区在线视频 | 欧美日韩精品一区二区三区 | 日韩精品在线播放 | 成人毛片在线观看 | www.久久久| 日韩精品成人 | 亚洲 欧美 激情 另类 校园 | 狠狠色丁香九九婷婷综合五月 | 精品视频久久 | www.狠狠干 | 欧美aaa一级片 | 国产高清视频 | 久久久久久久久久久蜜桃 | 国产精品美女 | 成人免费看| 日韩在线精品 | 免费小毛片 | 久久精品91久久久久久再现 | 欧美日韩一区二区视频在线观看 | 精品在线一区 | 免费一区二区 | 亚洲成人一二三 | 日韩资源 | 精品国产乱码久久久久久闺蜜 | 欧美成人手机在线 |