讨论VB.NET简单数据类型

开发 后端
这里介绍VB.NET简单数据类型是指Numeric数据类型、Byte数据类型和Boolean数据类型。它们的共同的特点是结构简单,操作系统在处理时不必进行特殊的转换。

在向大家详细介绍VB.NET简单数据类型之前,首先让大家了解下某些DLL过程的同一个参数能够接受多种数据类型,然后全面介绍VB.NET简单数据类型。

某些DLL过程的同一个参数能够接受多种数据类型。如果需要传递多种类型的数据,可 以将参数声明为AsAny,从而取消类型限制。例如,下面的声明中的第三个参数(lpptAsAny) 既可以传递一个POINT结构的数组,也可以传递一个RECT结构:

  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子句提供了一定的灵活性,但是,由于它不进行任何的类型检查,风险也随之增 加。因此在使用AsAny子句时,必须仔细检查所有参数的类型。

正确的函数声明是在VB中调用动态连接库的前提,但要想在VB中用对、用好动态库中的函数,仅仅有声明还是远远不够的。前面已经说过,由于VB不能验证应用程序传递到动态连接库中的参数值是否正确,因此就要求程序员应对参数类型有非常详细的了解,否则很容易引起应用程序发生通用保护错或导致潜在的Bug,降低软件的可靠性。

VB.NET简单数据类型

VB.NET简单数据类型是指Numeric数据类型(包括Integer、Long、Single、Double、Currency类型)、Byte数据类型和Boolean数据类型。它们的共同的特点是结构简单,操作系统在处理时不必进行特殊的转换。

VB.NET简单数据类型参数的传递比较简单。我们知道,在VB中传递参数的方式有两种:传值(Byval) 和传址(ByRef),缺省的方式是传址。所谓传值,就是对一个变量的具体值进行传递;而传址则是传递变量的地址。例如,在VB程序中需要将一个整型变量m=10的值传进动态库,如果用传值方式,那么传进动态库的值就是10,而在传址方式下,传入的则是变量m的地址,相当于C/C++ 中&m的值。需要注意的是,以传值方式传进动态连接库的变量,其值在动态库中是不能被改变的;如果需要在动态连接库中修改传入参数的值,则必须使用传址方式。一般来说,在VB 和动态连接库之间传递单个的VB.NET简单数据类型,只要注意了以上几个方面就可以了。当需要将一个VB.NET简单数据类型的整个数组传进动态库时,必须将相应参数声明为传址方式,然后把数组的第一个元素作为参数传入,这样在动态连接库中就得到了数组的首地址,从而可以对整个数组进行访问。例如,声明了一个名为ReadArray的DLL过程,要求传入一个整型数组aArray:

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

【编辑推荐】

  1. VB.NET使用Alias子句简介
  2. 详细描述VB调用动态连接库
  3. 叙述VB.NET创建控件数组
  4. 浅析VB.NET绘制GDI图形的方法
  5. VB.NET Declare语句学习笔记
责任编辑:佚名 来源: IT168
相关推荐

2010-01-14 14:21:07

2009-10-13 16:05:07

VB.NET字符数据类

2010-01-20 18:14:58

VB.NET数据类型

2009-11-02 16:15:51

VB.NET字符数据类

2009-10-30 15:51:30

VB.NET使用缺省属

2009-10-13 14:38:10

VB.NET访问类型

2010-01-07 14:10:41

VB.NET数据类型

2009-10-26 15:26:37

VB.NET属性

2010-01-12 15:21:48

VB.NET权限控制

2009-10-14 13:56:05

VB.NET数据窗体

2009-10-29 10:45:01

VB.NET设置控件

2009-10-20 10:29:30

VB.NET使用Sor

2009-11-10 11:04:09

VB.NET数据类型

2009-10-14 13:15:09

VB.NET数据绑定

2010-01-15 15:10:43

VB.NET Stri

2010-01-18 16:49:36

VB.NET基本数据类

2009-10-22 17:06:14

VB.NET数据类型

2009-10-16 13:26:53

VB.NET Exce

2009-10-23 10:01:28

VB.NET申明Win

2009-10-09 17:40:38

VB.Net问题集
点赞
收藏

51CTO技术栈公众号