如何在VB中使用API函数

我喜欢用VB编程,但是到现在都不知道如何在VB中具体使用API函数。我很郁闷小弟跪求答案!一定要具体哦!... 我喜欢用VB编程,但是到现在都不知道如何在VB中具体使用API函数。
我很郁闷
小弟跪求答案!
一定要具体哦!
展开
 我来答
匿名用户
推荐于2016-11-26
展开全部
什么是API/怎样在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函数的完整声明,然后把它粘贴到程序中即可。
訾岚宰白云
2020-06-09 · TA获得超过3908个赞
知道大有可为答主
回答量:3187
采纳率:24%
帮助的人:214万
展开全部
VB自带了个API浏览器,里面包含了常用API、常量、类型的定义,这些定义都被存放在WIN32API.TXT这个文件中。
开始→程序→Microsoft
Visaul
Basic
6.0中文版→Microsoft
Visual
Basic
6.0
中文版工具→API浏览器
文件→加载文本文件→WIN32API
2、打开
VB6

外接程序

外接程序管理器

把“VB6
API
Viewer”选上,并勾上“在启动中加载(s)”和“加载/卸载(l)”→确定→重启VB
注意:API浏览器只包含常用API,并非包含所有API
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小枫看法
高粉答主

推荐于2018-05-11 · 关注最新生活,身边事,好精彩。
小枫看法
采纳数:4018 获赞数:180089

向TA提问 私信TA
展开全部
  API函数是指,操作系统除了协调应用程序的执行、内存分配、系统资源管理外,同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务是一个函数),可以帮助应用程序达到开启视窗、描绘图形、使用周边设备的函数服务的对象的应用程序。
  利用VBa使用API函数的方法:
  (1)用Declare语句声明所要调用的API函数,若该函数无返回值,可声明为Sub过程;若有返回值,则可声明为Function函数。
  (2)一旦声明了某一个API函数后,就可以象调用VisualBasic的函数一样。但如果参数传递不对,可能会导致死机。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
达典翠阳晖
2019-10-18 · TA获得超过3766个赞
知道大有可为答主
回答量:3131
采纳率:33%
帮助的人:168万
展开全部
有一个api32.txt这个文件里面有说明。
另外:要给分。才会有人回答。!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
缑闲戢思敏
2019-07-25 · TA获得超过4064个赞
知道大有可为答主
回答量:3127
采纳率:29%
帮助的人:211万
展开全部
这个函数是系统消息处理函数,返回值是long,估计是返回句柄什么的,你必须在用的时候用一个整形的数据去接住他,比如:
dim
a,b,c,d,e,f
as
long
f=BroadcastSystemMessage(a,b,c,d,e)
至于每个参数是什么用的,你必须要参考MSDN了,有些API是不能单独使用的,比如你如果做图像处理的会经常用到一个API叫做Getbitmapbits,这个API不能单独使用的,必须要和SelectObject
GetObject
DeleteObject,
GetDC,
DeleteDC,
ReleaseDC一串一起用的,好好学吧,罗马不是一天造成的。
当然有些API用起来还是很好用的,就像玩游戏搭积木一样。比如什么实现窗口的透明效果啦,图像的复制啦,注册表的修改啦,这些都是单独的API,一般不需要和设备、句柄等东西打交道,所以用起来能够非常得心应手。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式