成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

VB.NET指針怎么應用

這篇文章主要介紹了VB.NET指針怎么應用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

在陸豐等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網站設計制作、網站建設 網站設計制作按需制作網站,公司網站建設,企業(yè)網站建設,品牌網站設計,網絡營銷推廣,外貿營銷網站建設,陸豐網站建設費用合理。

VB里使用指針不象C里那樣靈活,用指針處理數據時都需要用CopyMemory將數據在指針和VB能夠處理的變量之間來回拷貝,這需要很大的額外開銷。因此不是所有C里的指針操作都可以移值到VB里來,我們只應在需要的時候才在VB里使用指針。

1、VB.NET指針應用動態(tài)內存分配:完全不可能、可能但不可行,VB標準

在C和C++里頻繁使用指針的一個重要原因是需要使用動態(tài)內存分配,用Malloc或New來從堆棧里動態(tài)分配內存,并得到指向這個內存的指針。在VB里我們也可以自己用API來實現動態(tài)分配內存,并且實現象C里的指針鏈表。

但我們不可能象C那樣直接用指針來訪問這樣動態(tài)分配的內存,訪問時我們必須用CopyMemory將數據拷貝到VB的變量內,大量的使用這種技術必然會降低效率,以至于要象C那樣用指針來使用動態(tài)內存根本就沒有可行性。要象C、PASCAL那樣實現動態(tài)數據結構,在VB里還是應該老老實實用對象技術來實現。

本文配套代碼中的LinkedList里有完全用指針實現的鏈表,它是使用HeapAlloc從堆棧中動態(tài)分配內存,另有一個調用FindFirstUrlCacheEntry這個API來操作IE的Cache的小程序IECache,它使用了VirtualAlloc來動態(tài)分配內存。但實際上這都不是必須的,VB已經為我們提供了標準的動態(tài)內存分配的方法,那就是:對象、字符串和字節(jié)數組限于篇幅,關于對象的技術這里不講,LinkedList的源代碼里有用對象實現的鏈表,你可以參考。字符串可以用Space$函數來動態(tài)分配,VB的文檔里就有詳細的說明。關于字節(jié)數組,這里要講講,它非常有用。我們可用Redim來動態(tài)改變它的大小,并將指向它***個元素的指針傳給需要指針的API,如下:

dim ab() As Byte , ret As long  '傳遞Null值API會返回它所需要的緩沖區(qū)的長度。  ret = SomeApiNeedsBuffer(vbNullString)  '動態(tài)分配足夠大小的內存緩沖區(qū)  ReDim ab(ret) As Byte  '再次把指針傳給API,此時傳字節(jié)數組***個元素的指針。  SomeApiNeedsBuffer(ByVal VarPtr(ab(1)))

在本文配套程序中的IECache中,我也提供了用字節(jié)數組來實現動態(tài)分配緩沖區(qū)的版本,比用VirtualAlloc來實現更安全更簡單。

2、VB.NET指針應用突破限制

下面是一個突破VB類型檢查來實現特殊功能的經典應用,出自Bruce Mckinney的《HardCore Visual Basic》一書。

將一個Long長整數的低16位作為Interger型提取出來,

'標準的方法,也是高效的方法,但不容易理解。  Function LoWord(ByVal dw As Long) As Integer  If dw And &H8000& Then  LoWord = dw Or &HFFFF0000  Else  LoWord = dw And &HFFFF&  End If  End Function   '用指針來做效率雖不高,但思想清楚。  Function LoWord(ByVal dw As Long) As Integer  CopyMemory ByVal VarPtr(LoWord), ByVal VarPtr(dw), 2  End Function

感謝你能夠認真閱讀完這篇文章,希望小編分享的“VB.NET指針怎么應用”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯,關注創(chuàng)新互聯行業(yè)資訊頻道,更多相關知識等著你來學習!

新聞名稱:VB.NET指針怎么應用
瀏覽地址:http://jinyejixie.com/article0/jjisio.html

成都網站建設公司_創(chuàng)新互聯,為您提供服務器托管、虛擬主機、外貿建站網站維護、用戶體驗、定制開發(fā)

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

營銷型網站建設
怀宁县| 武平县| 兰考县| 钟祥市| 泸定县| 孝感市| 海原县| 格尔木市| 措美县| 眉山市| 章丘市| 石景山区| 寿光市| 延安市| 眉山市| 汝州市| 二连浩特市| 临沂市| 崇礼县| 博兴县| 城步| 东港市| 武夷山市| 兴隆县| 临汾市| 老河口市| 河西区| 任丘市| 长宁区| 长兴县| 卢湾区| 库伦旗| 大冶市| 虹口区| 闻喜县| 伊宁市| 通州区| 武功县| 越西县| 利辛县| 若羌县|