.NET中的数据类型的一些变化

作者:袖梨 2022-07-02
今天在做一个关于IC卡读写的程序,用到了一个IC卡读写器,有一个配套的dll动态库和一些库函数的说明,但是调试的时候总是会遇到一些奇怪的现象。VB6的示例中可以的操作,在我的程序中就会出现“未将对象引用设置到对象的实例”等等错误。折腾了半天也没有什么进展。后来用.NET的升级向导将那个VB6的实力程序升级,发现模块中函数的声明有一些变化。
VB6中声明:
Declare Function srd_45d041 Lib "mwic_32.dll" (ByVal icdev As Long, ByVal page As Integer, ByVal offset As Integer, ByVal le As Long, ByVal data_buffer$) As Integer
升级后.NET的声明:
Declare Function srd_45d041 Lib "mwic_32.dll" (ByVal icdev As Integer, ByVal page As Short, ByVal offset As Short, ByVal le As Integer, ByVal data_buffer As String) As Short
  VB6中Long类型在.NET中变成了Integer,而Integer变成了Short。就这么一点小小的问题搞得我郁闷了半天。把程序调试通过以后,我查了一下MSDN Library,发现.NET的数据类型和VB6的存在一些变化。具体的可以看下面这两张表。
表1 VB6中的数据类型
数据类型
存储空间大小
范围
Byte
1 个字节
0 到 255
Boolean
2 个字节
True 或 False
Integer
2 个字节
-32,768 到 32,767
Long
(长整型)
4 个字节
-2,147,483,648 到 2,147,483,647
Single
(单精度浮点型)
4 个字节
负数时从 -3.402823E38 到 -1.401298E-45;正数时从 1.401298E-45 到 3.402823E38
Double
(双精度浮点型)
8 个字节
负数时从 -1.79769313486232E308 到
-4.94065645841247E-324;正数时从4.94065645841247E-324 到 1.79769313486232E308
Currency
(变比整型)
8 个字节
从 -922,337,203,685,477.5808 到 922,337,203,685,477.5807

相关文章

精彩推荐