自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

討論VB.NET簡(jiǎn)單數(shù)據(jù)類(lèi)型

開(kāi)發(fā) 后端
這里介紹VB.NET簡(jiǎn)單數(shù)據(jù)類(lèi)型是指Numeric數(shù)據(jù)類(lèi)型、Byte數(shù)據(jù)類(lèi)型和Boolean數(shù)據(jù)類(lèi)型。它們的共同的特點(diǎn)是結(jié)構(gòu)簡(jiǎn)單,操作系統(tǒng)在處理時(shí)不必進(jìn)行特殊的轉(zhuǎn)換。

在向大家詳細(xì)介紹VB.NET簡(jiǎn)單數(shù)據(jù)類(lèi)型之前,首先讓大家了解下某些DLL過(guò)程的同一個(gè)參數(shù)能夠接受多種數(shù)據(jù)類(lèi)型,然后全面介紹VB.NET簡(jiǎn)單數(shù)據(jù)類(lèi)型。

某些DLL過(guò)程的同一個(gè)參數(shù)能夠接受多種數(shù)據(jù)類(lèi)型。如果需要傳遞多種類(lèi)型的數(shù)據(jù),可 以將參數(shù)聲明為AsAny,從而取消類(lèi)型限制。例如,下面的聲明中的第三個(gè)參數(shù)(lpptAsAny) 既可以傳遞一個(gè)POINT結(jié)構(gòu)的數(shù)組,也可以傳遞一個(gè)RECT結(jié)構(gòu):

  1. Declare Function MapWindowPoints Lib "user32" Alias _  
  2. "MapWindowPoints" (ByVal hwndFrom As Long, _  
  3. ByVal hwndTo As Long, lppt As Any, _  
  4. ByVal cPoints As Long) As Long 

AsAny子句提供了一定的靈活性,但是,由于它不進(jìn)行任何的類(lèi)型檢查,風(fēng)險(xiǎn)也隨之增 加。因此在使用AsAny子句時(shí),必須仔細(xì)檢查所有參數(shù)的類(lèi)型。

正確的函數(shù)聲明是在VB中調(diào)用動(dòng)態(tài)連接庫(kù)的前提,但要想在VB中用對(duì)、用好動(dòng)態(tài)庫(kù)中的函數(shù),僅僅有聲明還是遠(yuǎn)遠(yuǎn)不夠的。前面已經(jīng)說(shuō)過(guò),由于VB不能驗(yàn)證應(yīng)用程序傳遞到動(dòng)態(tài)連接庫(kù)中的參數(shù)值是否正確,因此就要求程序員應(yīng)對(duì)參數(shù)類(lèi)型有非常詳細(xì)的了解,否則很容易引起應(yīng)用程序發(fā)生通用保護(hù)錯(cuò)或?qū)е聺撛诘腂ug,降低軟件的可靠性。

VB.NET簡(jiǎn)單數(shù)據(jù)類(lèi)型

VB.NET簡(jiǎn)單數(shù)據(jù)類(lèi)型是指Numeric數(shù)據(jù)類(lèi)型(包括Integer、Long、Single、Double、Currency類(lèi)型)、Byte數(shù)據(jù)類(lèi)型和Boolean數(shù)據(jù)類(lèi)型。它們的共同的特點(diǎn)是結(jié)構(gòu)簡(jiǎn)單,操作系統(tǒng)在處理時(shí)不必進(jìn)行特殊的轉(zhuǎn)換。

VB.NET簡(jiǎn)單數(shù)據(jù)類(lèi)型參數(shù)的傳遞比較簡(jiǎn)單。我們知道,在VB中傳遞參數(shù)的方式有兩種:傳值(Byval) 和傳址(ByRef),缺省的方式是傳址。所謂傳值,就是對(duì)一個(gè)變量的具體值進(jìn)行傳遞;而傳址則是傳遞變量的地址。例如,在VB程序中需要將一個(gè)整型變量m=10的值傳進(jìn)動(dòng)態(tài)庫(kù),如果用傳值方式,那么傳進(jìn)動(dòng)態(tài)庫(kù)的值就是10,而在傳址方式下,傳入的則是變量m的地址,相當(dāng)于C/C++ 中&m的值。需要注意的是,以傳值方式傳進(jìn)動(dòng)態(tài)連接庫(kù)的變量,其值在動(dòng)態(tài)庫(kù)中是不能被改變的;如果需要在動(dòng)態(tài)連接庫(kù)中修改傳入?yún)?shù)的值,則必須使用傳址方式。一般來(lái)說(shuō),在VB 和動(dòng)態(tài)連接庫(kù)之間傳遞單個(gè)的VB.NET簡(jiǎn)單數(shù)據(jù)類(lèi)型,只要注意了以上幾個(gè)方面就可以了。當(dāng)需要將一個(gè)VB.NET簡(jiǎn)單數(shù)據(jù)類(lèi)型的整個(gè)數(shù)組傳進(jìn)動(dòng)態(tài)庫(kù)時(shí),必須將相應(yīng)參數(shù)聲明為傳址方式,然后把數(shù)組的第一個(gè)元素作為參數(shù)傳入,這樣在動(dòng)態(tài)連接庫(kù)中就得到了數(shù)組的首地址,從而可以對(duì)整個(gè)數(shù)組進(jìn)行訪問(wèn)。例如,聲明了一個(gè)名為ReadArray的DLL過(guò)程,要求傳入一個(gè)整型數(shù)組aArray:

  1. Declare Function ReadArray Lib "mydll.dll" _  
  2. (aArray As Integer) As Integer  
  3. 在調(diào)用時(shí)可以采用如下方式:  
  4. Dim ret,I(5) as Integer  
  5. … …  
  6. ret = ReadArray(I(0)) ' 

【編輯推薦】

  1. VB.NET使用Alias子句簡(jiǎn)介
  2. 詳細(xì)描述VB調(diào)用動(dòng)態(tài)連接庫(kù)
  3. 敘述VB.NET創(chuàng)建控件數(shù)組
  4. 淺析VB.NET繪制GDI圖形的方法
  5. VB.NET Declare語(yǔ)句學(xué)習(xí)筆記
責(zé)任編輯:佚名 來(lái)源: IT168
相關(guān)推薦

2010-01-14 14:21:07

2009-10-13 16:05:07

VB.NET字符數(shù)據(jù)類(lèi)

2009-10-30 15:51:30

VB.NET使用缺省屬

2009-11-02 16:15:51

VB.NET字符數(shù)據(jù)類(lèi)

2010-01-20 18:14:58

VB.NET數(shù)據(jù)類(lèi)型

2009-10-13 14:38:10

VB.NET訪問(wèn)類(lèi)型

2010-01-07 14:10:41

VB.NET數(shù)據(jù)類(lèi)型

2009-10-26 15:26:37

VB.NET屬性

2010-01-12 15:21:48

VB.NET權(quán)限控制

2009-10-14 13:56:05

VB.NET數(shù)據(jù)窗體

2009-10-20 10:29:30

VB.NET使用Sor

2009-10-29 10:45:01

VB.NET設(shè)置控件

2009-10-14 13:15:09

VB.NET數(shù)據(jù)綁定

2009-11-10 11:04:09

VB.NET數(shù)據(jù)類(lèi)型

2009-10-16 13:26:53

VB.NET Exce

2010-01-15 15:10:43

VB.NET Stri

2010-01-18 16:49:36

VB.NET基本數(shù)據(jù)類(lèi)

2009-10-22 17:06:14

VB.NET數(shù)據(jù)類(lèi)型

2009-10-23 10:01:28

VB.NET申明Win

2009-10-09 17:40:38

VB.Net問(wèn)題集
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)