成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析調用VB.NET Windows API函數

開發 后端
調用VB.NET Windows API函數往往是一種非常直接、有效的解決方法,文章就這點和大家深入細致的分析,希望對家有幫助。

VB.NET還是比較常用的,于是我研究了一下VB.NET Windows API ,在這里拿出來和大家分享一下,希望對大家有用。Windows API就是Windows系統的API函數簡稱(Application Program Interface,即:應用程序接口函數),它是Windows操作系統提供給各種開發基于Windows平臺應用軟件的開發語言的一些公用的函數,這些函數一般都比較底層,所以當各種開發語言使用自帶的函數或類庫已無法解決問題時,調用VB.NET Windows API函數往往是一種非常直接、有效的解決方法。但由于在程序中調用Windows API函數一般都很復雜,所以對于程序員來說,是否能夠靈活的使用Windows API函數,往往也是其水平高低的一個重要標志。但自從微軟推出.Net框架以后,各種開發基于.Net平臺下的程序語言,如VB.NET、Visual C#等卻很少使用Windows API函數,并且微軟公司也不像以前那樣,提倡在這些.Net開發語言中使用

#T#VB.NET Windows API函數,其主要的原因如下:
1. Net框架所附帶的類庫.Net FrameWork SDK是一個內容豐富、功能強大的軟件開發包,各種Windows API函數所實現的各種功能幾乎都可以在這個軟件開發包中找到與之對應的部分。

2.微軟VB.NET、Visual C#等目的是編寫跨平臺的應用程序,如果在VB.NET、Visual C#等中使用Windows API函數,這也就注定了編寫出的程序只能運行于Windows平臺之下,而弱化了.NET的跨平臺能力。這也就是為什么微軟不提倡在.Net平臺調用 Windows API函數的原因。

雖然微軟并不提倡在VB.NET、Visual C#中調用Windows API函數,但由于目前.Net 框架推出時間較短,.Net FrameWork SDK中提供的類庫還并不足以完全替換Windows API函數的所有功能,所以在某些時候,.Net開發語言還是必須要調用Windows API函數。

平臺調用、托管DLL、非托管DLL簡介

托管DLL就是能夠在公共語言運行庫(Common Language Runtime,簡稱CLR)中能夠直接引用的,并且擴展名為“DLL”的文件。具體所指就是封裝各種命名空間所在的DLL文件,如System.dll 等。非托管DLL就是平常所的動態鏈接庫等,其中就包括了封裝所有Windows API函數的DLL文件。各種非托管DLL中的函數在公共語言運行庫中不能直接被調用,而需要經過.Net框架提供的“平臺調用”服務后才可以。

“平臺調用”是.Net框架為VB.NET、Visual C#等.Net開發語言提供的一種服務,用以在托管代碼中引入各種非托管DLL中封裝的函數(其中包括Windows API函數)。“平臺調用”依賴于元數據在運行時查找導出函數并封裝其參數。圖01公共語言運行庫利用“平臺服務”調用非托管DLL中的函數的流程圖:

 “平臺服務”的調用非托管函數的流程圖


圖01:“平臺服務”的調用非托管函數的流程圖

在托管代碼中使用“平臺調用”服務調用非托管DLL中封裝的函數時,“平臺服務”將依次執行以下操作:
1.查找包含該函數所在的DLL文件。
2.如果找到,則將該DLL文件 加載到內存中。
3.查找函數在內存中的地址并將其參數推到堆棧上,并封送所需的數據。
4.將控制權轉移給非托管函數。 這樣整個函數調用完成。

在VB.NET中使用“平臺調用”服務,申明Windows API函數主要有二種具體的實現方法:
1.使用DllImport特征類來申明Windows API函數。
2.使用“Declare”語句來申明Windows API函數。

這二種方法雖有異曲同工之效,但在繁簡上卻有很大差異,第一種方法申明過程比較復雜,很容易在申明Windows API函數時出錯,所以并不提倡。而第二種方法相對簡單,并且又保存了以前Visual Basic中的很多語法,所以在平常時大都使用這種方法來申明Windows API函數。

責任編輯:田樹 來源: 博客
相關推薦

2009-10-15 17:50:48

VB.NET調用API

2009-10-23 10:01:28

VB.NET申明Win

2009-10-26 10:44:27

VB.NET API函

2009-11-03 13:02:28

VB.NET Wind

2009-10-15 17:41:14

VB.NET Impo

2009-11-03 09:26:13

VB.NET方法

2009-11-03 13:48:02

VB.NET枚舉

2009-11-10 16:55:05

VB.NET調用API

2010-01-18 17:29:35

VB.NET函數調用

2009-10-16 18:01:06

VB.NET調用Win

2009-10-10 15:43:51

2009-10-13 15:20:02

VB.NET使用Dra

2009-10-12 14:32:40

VB.NET實現定時關

2009-11-03 10:00:20

VB.NET New方

2009-10-16 14:07:18

VB.NET使用Mon

2009-10-19 17:42:31

VB.NET API函

2009-10-23 12:53:25

VB.NET語言

2010-01-13 17:16:37

VB.NET冒號

2009-11-02 17:49:05

VB.NET抽象類

2009-10-26 17:24:42

VB.NET終端服務啟
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久久黄 | 国产精品1 | 成人欧美一区二区三区1314 | 日本精品一区二区三区在线观看视频 | 日韩免费福利视频 | 欧美精品久久久久久久久老牛影院 | 福利精品在线观看 | 国产精品永久久久久久久www | 欧一区| 国产精品高清一区二区三区 | 亚洲 精品 综合 精品 自拍 | 亚洲毛片在线观看 | 在线亚洲人成电影网站色www | 91亚洲国产 | 精品国产伦一区二区三区观看说明 | 欧美一级淫片007 | 国产一区999 | 国产综合欧美 | 久久精品国产v日韩v亚洲 | 欧美a v在线 | 国产成在线观看免费视频 | 黄色大片免费看 | 98成人网| 亚洲一区二区av | 日韩视频1 | 日本精品一区二区三区在线观看视频 | 美女黄色在线观看 | 综合网伊人 | 国产1区| 亚洲精品国产成人 | 欧美白人做受xxxx视频 | 国产精品久久久久久吹潮 | 天天色天天| 欧美久久精品一级黑人c片 91免费在线视频 | 国产女人与拘做受免费视频 | 一区二区精品 | 成人在线精品视频 | 91久久精品国产 | 国产日韩精品久久 | 国产精品一区二区三区久久 | 久草在线|