中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
(引用)API基礎(chǔ)知識(shí)(引用)_

微軟公司隨Windows操作系統(tǒng)發(fā)布的應(yīng)用程序接口(application programming Interface),即通常所說的API,是Windows系

統(tǒng)為其下運(yùn)行的各類應(yīng)用程序提供的重要服務(wù)功能微軟的所有Win32平臺(tái)都支持統(tǒng)一的API調(diào)用,包括函數(shù)、結(jié)構(gòu)、消息、宏 

 及接口。通過Windows系統(tǒng)提供的API服務(wù)功能,應(yīng)用程序可以充分挖掘Windows系統(tǒng)的潛力。

API的核心是一組用C語言編寫的供外部應(yīng)用程序調(diào)用的函數(shù)過程。通過調(diào)用動(dòng)態(tài)庫(kù)文件中的函數(shù),程序員可以在自己開發(fā)的應(yīng)

用中方便地向系統(tǒng)請(qǐng)求或執(zhí)行更低級(jí)的設(shè)備訪問,利用和控制系統(tǒng)資源,實(shí)現(xiàn)與系統(tǒng)相同或相似的功能。由此可以降低應(yīng)用系

統(tǒng)開發(fā)的復(fù)雜性,提高開發(fā)效率,并且無論是應(yīng)用供應(yīng)商還是最終用戶都無需支付額外的費(fèi)用。

當(dāng)Windows操作系統(tǒng)開始占據(jù)主導(dǎo)地位的時(shí)候,開發(fā)Windows平臺(tái)下的應(yīng)用程序成為現(xiàn)實(shí)的需要。而在Windows程序設(shè)計(jì)領(lǐng)域處于

發(fā)展的初期,程序員所能使用的編程工具惟有API函數(shù),這些函數(shù)是Windows提供給應(yīng)用程序與操作系統(tǒng)的接口,它們猶如兒童

搭積木一樣,可以構(gòu)建出各種界面豐富、功能靈活的應(yīng)用程序。所以可以認(rèn)為它API是構(gòu)筑整個(gè)Windows框架的基石,在它的下

面是Windows操作系統(tǒng)的核心,而在它的上面則是所有華麗的Windows應(yīng)用程序。

在Visual C++、Visual Basic、PowerBuilder、Delphi這些優(yōu)秀可視化編程工具的誕生之前,程序員想開發(fā)Windows下的應(yīng)用就

必須借助API。由于API固有的復(fù)雜性和程序員缺乏對(duì)其深刻的了解,令許多人在其面前望而卻步。然而隨著軟件技術(shù)的不斷推

陳出新,在Windows平臺(tái)上出現(xiàn)了很多優(yōu)秀的可視化編程環(huán)境,程序員可以采用“即見即所得”的編程方式來開發(fā)具有精美用戶

界面和功能強(qiáng)大的應(yīng)用程序。

可視化編程工具提供了大量的類庫(kù)和各種控件,它們替代了API的神秘功能。事實(shí)上這些類庫(kù)和控件都是構(gòu)架在Win32 API函數(shù)

基礎(chǔ)之上的,是封裝了的API函數(shù)的集合。它們把常用的API函數(shù)組合在一起成為一個(gè)控件或類庫(kù),并賦予其方便的使用方法,

極大地加速了Windows應(yīng)用程序開發(fā)的過程。有了這些控件和類庫(kù),程序員便可以把主要精力放在企業(yè)業(yè)務(wù)邏輯的實(shí)現(xiàn)和應(yīng)用整

體功能的設(shè)計(jì)上,而不必過于關(guān)注界面設(shè)計(jì)、設(shè)備控制、系統(tǒng)資源訪問等技術(shù)細(xì)節(jié)。

實(shí)際上,如果要開發(fā)出更靈活、更實(shí)用、更具效率的應(yīng)用程序,就必然要涉及到直接使用API函數(shù)。雖然類庫(kù)和控件簡(jiǎn)化了應(yīng)用

程序的開發(fā),但它們只提供Windows的一般功能,對(duì)于比較復(fù)雜和特殊的功能,當(dāng)使用類庫(kù)和控件難以實(shí)現(xiàn)時(shí),就需要借助于

API來實(shí)現(xiàn)。操作系統(tǒng)提供的API由函數(shù)、消息、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)類型以及語句組成靜態(tài)鏈接與動(dòng)態(tài)鏈接的區(qū)別:

靜態(tài)庫(kù)包含完成一些特定功能的子過程,在程序開發(fā)中可以通過鏈接將它們包含到應(yīng)用中,它將成為應(yīng)用不可分割的一部分,

在程序運(yùn)行時(shí),一次性整體裝入。
應(yīng)用程序調(diào)用動(dòng)態(tài)鏈接庫(kù)中的某個(gè)函數(shù)時(shí),應(yīng)用程序并不復(fù)制被調(diào)用庫(kù)函數(shù)中的代碼,而只是從動(dòng)態(tài)庫(kù)中復(fù)制一些指示信息,

指出被調(diào)用函數(shù)屬于那個(gè)動(dòng)態(tài)鏈接庫(kù)。因此,在應(yīng)用程序可執(zhí)行文件中,存放的不是被調(diào)用函數(shù)的代碼,而是DLL中該函數(shù)的內(nèi)

存地址。這樣,當(dāng)多個(gè)應(yīng)用程序調(diào)用DLL庫(kù)中的同一個(gè)函數(shù)時(shí),不會(huì)在內(nèi)存中產(chǎn)生該函數(shù)的多個(gè)復(fù)制,而是只有一份復(fù)制,從而

可以節(jié)省大量的內(nèi)存資源,提高系統(tǒng)的運(yùn)行效率。同時(shí),由于應(yīng)用程序與DLL庫(kù)文件的相互分離,當(dāng)DLL庫(kù)更新后,無需修改和

重新發(fā)布原有的應(yīng)用的可執(zhí)行文件。

不同類別的API函數(shù)分別位于Windows系統(tǒng)不同的動(dòng)態(tài)鏈接庫(kù)中, 事實(shí)上,Windows系統(tǒng)就是構(gòu)建在眾多的DLL庫(kù)之上的。
有許多動(dòng)態(tài)庫(kù)沒有開放給用戶調(diào)用。Windows系統(tǒng)的這種依賴于DLL庫(kù)的架構(gòu),有利于系統(tǒng)的升級(jí)與改造。當(dāng)系統(tǒng)需要擴(kuò)展新的

功能或更正系統(tǒng)的錯(cuò)誤時(shí),只要添加新的動(dòng)態(tài)庫(kù)或更新原有的動(dòng)態(tài)庫(kù)文件即可。

Windows動(dòng)態(tài)庫(kù)及支持的API服務(wù)
動(dòng)態(tài)鏈接庫(kù)   描     述
Advapi32.dll   高級(jí)API服務(wù)。支持大量的接口函數(shù),其中包括許多安全與注冊(cè)表訪問方面的接口函數(shù)
Comdlg32.dll   通用對(duì)話框 API 庫(kù)。提供與系統(tǒng)對(duì)話框相同的函數(shù)支持,包括文件打開保存通用對(duì)話框、字體選擇、顏色選

                擇通用對(duì)話框、打印相關(guān)對(duì)話框等
Comctl32.dll   通用控件API庫(kù)。提供與Windows系統(tǒng)一致控件支持,包含Windows系統(tǒng)的通用控件集。PB提供的可視控件如列

                表框、文本框、樹型控件都屬于該控件集
Gdi32.dll   圖形設(shè)備接口API庫(kù)。庫(kù)中涉及設(shè)備輸出相關(guān)函數(shù),包括大多數(shù)繪圖、顯示環(huán)境、圖元文件、坐標(biāo)及字體函數(shù)

                等
Kernel32.dll   Win 32位核心的API支持。用于內(nèi)存管理、任務(wù)管理、文件管理、資源控制及相關(guān)操作
Mapi32.dll   電子郵件接口庫(kù)。為應(yīng)用程序提供添加電子郵件功能的一系列接口函數(shù)
Mpr.dll           多接口路由器庫(kù)
Netapi32.dll   32位網(wǎng)絡(luò)API庫(kù)。提供了一系列訪問和控制網(wǎng)絡(luò)的接口函數(shù)
ODBC32.dll   ODBC數(shù)據(jù)源訪問接口庫(kù)。提供了用于訪問不同數(shù)據(jù)庫(kù)數(shù)據(jù)源的標(biāo)準(zhǔn)的接口函數(shù),用于在應(yīng)用中實(shí)現(xiàn)ODBC數(shù)據(jù)  

               源訪問功能
Shell32.dll   32位Shell API庫(kù)。應(yīng)用程序可以使用Shell接口函數(shù)來增強(qiáng)系統(tǒng)Shell的各方面的功能
User32.dll   用戶接口過程庫(kù)。包括消息、菜單、光標(biāo)、插入標(biāo)記、計(jì)時(shí)器、通信及其他大多數(shù)非顯示函數(shù)
Version.dll   版本庫(kù)
Winmm.dll   Windows 多媒體庫(kù)。提供對(duì)系統(tǒng)多媒體功能的訪問
Winspool.drv   后臺(tái)打印接口,包含后臺(tái)打印API調(diào)用
z32.dll           32位壓縮過程。提供對(duì)文件的壓縮和解壓縮函數(shù)

回調(diào)函數(shù)
回調(diào)函數(shù)是程序員在自己的應(yīng)用程序中定義的,供Windows系統(tǒng)DLL或其他DLL調(diào)用的函數(shù),一般用于截獲消息、獲取系統(tǒng)信息或

處理異步事件。應(yīng)用程序把回調(diào)函數(shù)的地址指針告訴DLL,而DLL在適當(dāng)?shù)臅r(shí)候會(huì)調(diào)用該函數(shù)。回調(diào)函數(shù)必須遵守事先規(guī)定好的

參數(shù)格式和傳遞方式,否則DLL一調(diào)用它就會(huì)引起程序或系統(tǒng)的崩潰。

消息
對(duì)諸如PB、Visual Basic和Dephi等大多數(shù)可視化程序設(shè)計(jì)語言來講,程序設(shè)計(jì)的核心是對(duì)象的事件、屬性和方法,但對(duì)

Windows系統(tǒng)本身而言,卻是以消息處理為其控制機(jī)制。
Windows系統(tǒng)的消息以常量的方式給出,常量的值事實(shí)上為消息的編號(hào)。通過向?qū)ο螅ㄈ绱翱冢┌l(fā)送消息,通對(duì)象完成指定的操作。

句柄

句柄是Windows系統(tǒng)用來標(biāo)識(shí)被所有應(yīng)用程序建立或使用的對(duì)象的惟一整數(shù)。Windows要使用各種各樣的句柄來標(biāo)識(shí)諸如應(yīng)用程

序?qū)嵗⒋翱?、菜單、控件、分配的?nèi)存空間、設(shè)備場(chǎng)景、文件及GDI繪圖對(duì)象等。
句柄是一個(gè)用32位整數(shù)表示的對(duì)象標(biāo)識(shí)符,每個(gè)句柄都有一個(gè)類型標(biāo)識(shí)符,通常以小寫字母“h”開頭,如hWnd表示窗口句柄,

hBrush表示GDI繪圖對(duì)象刷子的句柄,hDC表示設(shè)備場(chǎng)景的句柄等。

Windows系統(tǒng)常用的一些對(duì)象句柄
對(duì)     象   標(biāo)   識(shí)   符   描     述
Bitmap(位圖)   hBitmap   標(biāo)識(shí)用于存儲(chǔ)位圖信息的內(nèi)存區(qū)域?qū)ο?br>Brush(刷子)   hBrush   標(biāo)識(shí)用于填充區(qū)域的刷子對(duì)象
Cursor(光標(biāo))   hCursor   標(biāo)識(shí)光標(biāo)對(duì)象
Device Context(設(shè)備場(chǎng)景)   hDC   標(biāo)識(shí)設(shè)備場(chǎng)景對(duì)象
File(文件)   hFile   標(biāo)識(shí)磁盤文件對(duì)象
Font(字體)   hFont   標(biāo)識(shí)字體對(duì)象
Icon(圖標(biāo))   hIcon   標(biāo)識(shí)圖標(biāo)位圖對(duì)象
Instance(實(shí)例)   hInstance   標(biāo)識(shí)Windows應(yīng)用程序?qū)嵗龑?duì)象
Memory(內(nèi)存)   hMem   標(biāo)識(shí)一個(gè)內(nèi)存塊對(duì)象
Menu(菜單)   hMenu   標(biāo)識(shí)窗口菜單欄或彈出式菜單對(duì)象
Metafile(圖元文件)   hMetafile   標(biāo)識(shí)圖元文件對(duì)象
Module(模塊)   hModulehLibModule   標(biāo)識(shí)一個(gè)代碼模塊對(duì)象,如DLL或Exe模塊等,常用于訪問一個(gè)模塊里的資源,如

字體、圖標(biāo)、光標(biāo)等
Object(Kernel)(對(duì)象-內(nèi)核)   hObject   標(biāo)識(shí)Win32定義的一系列同步對(duì)象,如事件、信號(hào)機(jī)、MUTEX等,每個(gè)對(duì)象都有相

應(yīng)的句柄Windows系統(tǒng)常用的一些對(duì)象句柄對(duì)     象   標(biāo)   識(shí)   符   描     述 Bitmap(位圖)   hBitmap   標(biāo)識(shí)用于存儲(chǔ)位圖信息的內(nèi)存區(qū)域?qū)ο?Brush(刷子)   hBrush   標(biāo)識(shí)用于填充區(qū)域的刷子對(duì)象 Cursor(光標(biāo))   hCursor   標(biāo)識(shí)光標(biāo)對(duì)象 Device Context(設(shè)備場(chǎng)景)   hDC   標(biāo)識(shí)設(shè)備場(chǎng)景對(duì)象 File(文件)   hFile   標(biāo)識(shí)磁盤文件對(duì)象 Font(字體)   hFont   標(biāo)識(shí)字體對(duì)象 Icon(圖標(biāo))   hIcon   標(biāo)識(shí)圖標(biāo)位圖對(duì)象 Instance(實(shí)例)   hInstance   標(biāo)識(shí)Windows應(yīng)用程序?qū)嵗龑?duì)象 Memory(內(nèi)存)   hMem   標(biāo)識(shí)一個(gè)內(nèi)存塊對(duì)象 Menu(菜單)   hMenu   標(biāo)識(shí)窗口菜單欄或彈出式菜單對(duì)象 Metafile(圖元文件)   hMetafile   標(biāo)識(shí)圖元文件對(duì)象 Module(模塊)   hModulehLibModule   標(biāo)識(shí)一個(gè)代碼模塊對(duì)象,如DLL或Exe模塊等,常用于訪問一個(gè)模塊里的資源,如 字體、圖標(biāo)、光標(biāo)等 Object(Kernel)(對(duì)象-內(nèi)核)   hObject   標(biāo)識(shí)Win32定義的一系列同步對(duì)象,如事件、信號(hào)機(jī)、MUTEX等,每個(gè)對(duì)象都有相 應(yīng)的句柄
Pallete(調(diào)色板)   hPallete   標(biāo)識(shí)調(diào)色板對(duì)象
Pen(內(nèi)存)   hPen   標(biāo)識(shí)畫筆對(duì)象
Process(進(jìn)程)   hProcess   標(biāo)識(shí)正在進(jìn)行的進(jìn)程對(duì)象
Region(區(qū)域)   hRgn   標(biāo)識(shí)窗口中的一個(gè)區(qū)域?qū)ο?br>Window(窗口)   hWnd   標(biāo)識(shí)窗口對(duì)象

Windows中的句柄有點(diǎn)像通常的C程序設(shè)計(jì)中使用的文件句柄,其實(shí)就是內(nèi)部表格的索引值。Windows通過句柄到內(nèi)部表格中去存

取相關(guān)信息,而應(yīng)用程序則總是通過調(diào)用一個(gè) Windows函數(shù)來獲取一個(gè)句柄,其他的Windows函數(shù)可使用這個(gè)句柄以引用相應(yīng)的

對(duì)象。句柄的實(shí)際值對(duì)應(yīng)用程序并不重要,但向應(yīng)用程序提供句柄的Windows模塊知道如何使用該句柄去引用對(duì)象,這種處理方

式就不會(huì)破壞Windows的多任務(wù)環(huán)境。

圖形設(shè)備接口  
圖形設(shè)備接口(GDI)提供了一系列的函數(shù)和相關(guān)的結(jié)構(gòu),應(yīng)用程序可以使用它們?cè)陲@示器、打印機(jī)或其他設(shè)備上生成圖形化的

輸出結(jié)果。使用GDI函數(shù)可以繪制直線、曲線、閉合圖形、路徑、文本以及位圖圖像。所繪制的圖形的顏色和風(fēng)格依賴于所創(chuàng)建

的繪圖對(duì)象,即畫筆、筆刷和字體。用戶可以使用畫筆來繪制直線和曲線,使用筆刷來填充閉合圖形的內(nèi)部,使用字體來書寫

文本。
應(yīng)用程序通過創(chuàng)建設(shè)備場(chǎng)景(DC),可以直接向指定的設(shè)備進(jìn)行輸出。設(shè)備場(chǎng)景是一個(gè)GDI管理的結(jié)構(gòu)。其中包含一些有關(guān)設(shè)備

的信息,比如它的操作方式及當(dāng)前的選擇。應(yīng)用程序可使用設(shè)備場(chǎng)景函數(shù)來創(chuàng)建DC。GDI將返回一個(gè)設(shè)備場(chǎng)景句柄,在隨后的調(diào)

用中,該句柄用于表示該設(shè)備。例如,應(yīng)用程序可以使用該句柄來獲取有關(guān)該設(shè)備性能的一些信息,諸如它的類型(顯示器、

打印機(jī)或其他設(shè)備),它的顯示界面的尺寸和分辨率等。
應(yīng)用程序可以直接向一個(gè)物理設(shè)備進(jìn)行輸出,比如顯示器或打印機(jī);也可以向一個(gè)“邏輯”設(shè)備進(jìn)行輸出,比如內(nèi)存設(shè)備或元

文件(meta file)。邏輯設(shè)備向應(yīng)用程序所提供的保存輸出結(jié)果的格式,可以很容易地將其發(fā)送到物理設(shè)備上。一旦應(yīng)用程序

將輸出結(jié)果記錄到了一個(gè)元文件中,那么該元文件就可以被使用任意多次,并且該輸出結(jié)果可以被發(fā)送到任意多個(gè)物理設(shè)備上  


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
在VBA中使用Windows API
《windows核心編程系列》四談?wù)勥M(jìn)程的建立和終止
深度探索I/O完成端口
windows下進(jìn)程間通信的手段有哪些?
調(diào)用哪個(gè)API函數(shù)可以實(shí)現(xiàn)復(fù)制和粘貼?
句柄
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服