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

剖析VB.NET平臺調用是如何執行操作

開發 后端
這里介紹VB.NET平臺調用,平臺調用是.NET框架為VB.NET、Visual C#等.NET開發語言提供的一種服務,用以在托管代碼中引入各種非托管DLL中封裝的函數。

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

1. .NET框架所附帶的類庫.NETFrameWork SDK是一個內容豐富、功能強大的軟件開發包,各種Windows API函數所實現的各種功能幾乎都可以在這個軟件開發包中找到與之對應的部分。

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

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

VB.NET平臺調用、托管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函數)。平臺調用依賴于元數據在運行時查找導出函數并封裝其參數。

平臺服務調用非托管DLL中的函數的流程圖

公共語言運行庫利用平臺服務調用非托管DLL中的函數的流程圖


在托管代碼中使用平臺調用服務調用非托管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函數。

【編輯推薦】

  1. 全方位分析VB.NET編碼規范
  2. 詳細說明VB.NET變量中四點
  3. 三類十二種VB.NET數據類型全面介紹
  4. VB.NET初步知識,初學者必看
  5. 具體介紹四大類VB.NET循環
責任編輯:佚名 來源: 天極
相關推薦

2009-10-15 17:50:48

VB.NET調用API

2009-10-21 16:00:26

VB.NET CASE

2009-10-23 13:14:38

2009-10-13 15:09:19

VB.NET使用Tre

2009-11-02 16:22:16

VB.NET面向對象

2010-01-12 09:51:07

VB.NET操作dbf

2010-01-12 11:47:09

VB.NET可選參數

2010-01-21 12:55:08

VB.NET對象序列

2009-10-29 11:41:27

VB.NET寫Obje

2010-01-14 14:21:07

2009-10-28 10:15:48

VB.NET框架類庫

2009-10-12 16:51:28

VB.NET使用Ora

2010-01-22 15:37:02

VB.NET監控類

2010-01-22 14:19:38

VB.NET調用jar

2010-01-19 18:24:29

VB.NET調用Win

2010-01-19 17:32:03

VB.NET流

2009-10-13 11:22:46

VB.NET調用Web

2010-01-11 15:54:48

VB.NET操作縮放圖

2010-01-14 18:08:08

VB.NET抽象類

2010-01-19 13:06:24

VB.NET數據集
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产98色在线 | 日韩 | 一级毛片视频在线 | 91精品国产综合久久福利软件 | 精品成人免费一区二区在线播放 | 黄色毛片在线观看 | 日本视频中文字幕 | 久久99这里只有精品 | 久久久久久久久久久福利观看 | 日本三级在线视频 | 激情一区二区三区 | 亚洲va国产日韩欧美精品色婷婷 | 精品国产久 | 人人做人人澡人人爽欧美 | 黄色精品 | 久久久久国产 | 久久久精品在线 | 二区视频 | 欧美一区二区小视频 | 免费一级黄色 | 天堂网avav | 国产精品美女久久久av超清 | 亚洲一区在线免费观看 | 久久久亚洲精品视频 | 97超碰人人草 | 青娱乐av| 欧美精品日韩精品国产精品 | 日本久久精品视频 | 日韩免费视频 | 久久久激情 | 综合精品 | 天天操天天操 | 亚洲精品乱码久久久久久久久 | 在线视频日韩 | 九九热精品在线视频 | 一级毛片视频在线 | 国产一区免费视频 | 中文字幕一区二区不卡 | 精品一区二区三区在线观看 | 综合国产 | 欧美国产在线一区 | 国产区久久 |