简单说明VB.NET自定义类型在API中使用

开发 后端
文章主要是利用API说明VB.NET自定义类型在API中的使用,希望研究API的朋友一定要仔细阅读,相信一定会有技术上的提高的。

随着时代的发展,VB.NET技术也随着发展,我在前面已经提到过VB.NET自定义类型,这次我用一个简单的API来说明一个VB.NET自定义类型在API中的使用。VB.NET自定义类型规定了变量传递给函数或子程序时必须按引用来传递(关于按引用传递与按值传递,将在以后的文章中做详细介绍),因此下面这个API的声明,你会发现和前面所介绍的几个有少许不同。

  1. Public Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long 

相比上一话中的一个API:

  1. Public Declare Function GetSystemDirectory Lib "kernel32" Alias 
    "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long 

可发现参数前面少了个ByVal。如果不加ByVal,或者把ByVal换成ByRef,就是按引用传递。POINTAPI不是VB的标准数据类型,它是一个自定义类型。从API浏览器中我们得到它的定义原形是这样的:

  1. Public Type POINTAPI  
  2. x As Long  
  3. y As Long  
  4. End Type 

#T#这里应该引起注意的是,你应该把POINTAPI的定义写在使用它的函数声明之前,否则VB会认为你的类型未定义。你也不可以把 x As Long 和 y As Long 的位置对调,如果对调了,在这个API中最多只会使原本 x 的值变成 y 的值,y 的值变成 x 的值,但在更复杂的自定义类型中,结果就不可预知了。这个API的作用是得到鼠标指针在屏幕中的坐标(以像素为单位)。你可以在自己的程序中试验它,比如:

  1. Dim tCursor As POINTAPI  
  2. GetCursorPos tCursor  
  3. Debug.Print tCursor.x, tCursor.y 

将从调试窗口打印鼠标指针的当前坐标

VB 中的坐标系统比较丰富,有Twip、Point、Pixel、 Character、Inch、Millimeter、Centimeter和User。很复杂吧?在这里我要说的是Twip和Pixel,至于剩下的,由于和本文所说的应用无多大关系,请参考MSDN或相关书籍。

责任编辑:田树 来源: 博客
相关推荐

2010-01-15 15:26:46

VB.NET自定义类型

2010-01-18 15:43:35

VB.NET自定义属性

2009-10-13 14:38:10

VB.NET访问类型

2010-01-18 18:20:49

VB.NET使用API

2009-10-12 13:11:48

VB.NET使用线程

2009-10-16 12:52:28

VB.NET简单数据类

2009-10-16 13:26:53

VB.NET Exce

2010-01-12 13:43:30

VB.NET字符转换

2009-10-26 10:44:27

VB.NET API函

2009-10-30 15:51:30

VB.NET使用缺省属

2009-10-13 09:33:49

VB.NET Web

2009-10-28 10:51:32

VB.NET默认属性

2009-10-12 13:19:14

VB.NET线程同步

2009-10-15 11:11:08

VB.NET Text

2009-11-04 09:32:12

VB.NET Auto

2009-10-13 09:24:57

VB.NET Dock

2009-10-14 13:15:09

VB.NET数据绑定

2009-10-15 16:39:00

VB.NET读取INI

2009-10-13 14:42:30

VB.NET静态成员

2009-10-30 11:20:54

VB.NET Proc
点赞
收藏

51CTO技术栈公众号