怎么在VB中运用API函数
补充:学习VB之后,怎么在VB中运用API函数,API我是什么都不清楚的。
补充:学习VB之后,怎么在VB中运用API函数,API我是什么都不清楚的。
答案:一、在VB中声明API函数有两种方法:如果我们只在某个窗体中使用API函数,我们可以在窗体代码的General部分声明它:
声明的语法是:
Private Declare Function ...
Private Declare Sub.....
这里必须采用Private声明,因为这个API函数只能被一个窗体内的程序所调用。
如果我们的程序有多个窗体构成,而且我们需要在多个窗体中使用同一个API函数,就需要在模块中声明了。
先添加一个模块(如下图所示)
然后采用如下语法声明:
Public Declare Function....
Public Declare Sub....
Public声明的含义是把API函数作为一个公共函数或过程,在一个工程中的任何位置(包括所有的窗体和模块)都能直接调用它。 声明完毕我们就能在程序中使用此API函数了。
二、可采用以下几种方式使用API函数,以SetWindowPos函数为例:
(1)忽略函数返回值的调用:
SetWindowPos Form1.hWnd, -2 ,0 ,0 ,0, 0, 3
注意此时函数的参数是不加括号的。
(2)Call方法调用:
Call SetWindowPos(Form1.hWnd, -2, 0, 0, 0, 3)
注意这里需要加上括号,但我们不取回函数的返回值。
(3)取得函数返回值的调用:
MyLng = SetWindowPos(Form1.hWnd, -2, 0, 0, 0, 3)
此时需要加上括号,而且我们必须事先定义一个变量(变量的类型与函数返回值类型相同)来存储API函数的返回值。
三、几个问题的说明:
(1)声明中的Lib 和 Alias 是怎么回事
一般情况下WIN32API函数总是包含在WINDOWS系统自带的或是其它公司提供的动态连接库DLL中,而Declare语句中的Lib关键字就用来指定DLL(动态连接库)文件的路径,这样VB才能找到这个DLL文件,然后才能使用其中的API函数。如果我们只是列出DLL文件名而不指出其完整的路径的话,VB会自动到.EXE文件所在目录、当前工作目录、WINDOWS\SYSTEM目录、WINDOWS目录下搜寻这个DLL文件。所以如果所要使用DLL文件不在上述几个目录下的话,我们应该指明其完整路径。
Alias用于指定API函数的别名,如果我们调用的API函数要使用字符串(参数中包含String型)的话,Alias关键字是必须的。这是因为在ANSI和Unicode字符集中同一API函数的名称可能是不一样的,为了保证不出现声明错误,我们使用Alias关键字指出API函数的别名,一般来说在WIN9X平台下我们把API函数名后加一个大写A作为别名即可。
(2)常见的API参数类型的说明
API函数的参数中最常见的是长整Long型数据类型,例如API中的句柄、一些特定的常量、函数的返回值都是此类型 的值;另外几种常见的参数类型有:整型Integer、Byte型、String型等。
(3)声明中的ByVal是作什么用的
这跟VB的参数传递方式有关,在默认情况下VB是通过地址传递方式传递函数的参数、而有些API函数要求必须采用传值方式来传递函数参数(这两种参数传递方式是不同的,前者传递的是一个指针,而后者要求是参数真实的值)。这样就会发生错误,解决的办法是在API函数参数声明的前面加上ByVal关键字,这样VB就采用传值方式传递参数了。
(4)怎样得到完整的API函数声明
VB自带了API文本查看器API TEXT VIEWER,我们可以在其中找到API函数的完整声明,然后把它粘贴到程序中即可。
'给你一个实例,使用API下载网页或文件
Option Explicit
Private Declare Function DoFileDownload Lib "shdocvw.dll" _
(ByVal lpszFile As String) As LongSub a()
Dim sDownload As String
sDownload = StrConv(" http://www.sina.com", vbUnicode)
Call DoFileDownload(sDownload)
End Sub自己当个VB 的API指南在VB里面根据函数名和参数写成类似于这样的
Public Declare Function Htmlhelp Lib "hhctrl.ocx" Alias "HtmlHelpA" (ByVal hwndCaller As Long, ByVal pszFile As String, ByVal uCommand As Long, ByVal dwData As Any) As Long
这个是定义了一个名为Htmlhelp 的函数,这个函数是个API函数,它的功能是打开帮助文件!
GOOGLE上有很多VB API大全下载的!你自己找找!~
api是指调用系统的DLL文件 API在使用前必须声明 声明后就可以调用了雪中花 朋友,可以得分的,真详细
可见敬业精神!
学习了!
上一个:VB中什么最难?
下一个:怎么使用VB编程系统!