欢迎来到天天文库
浏览记录
ID:15406809
大小:36.00 KB
页数:9页
时间:2018-08-03
《vb的api编程精粹(二)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、VB的API编程精粹(二)VB的API编程精粹(二)hh_bj第一节:API基础API说到底就是一系列的底层函数,是系统提供给用户用于进入操作系统核心,进行高级编程的途径。通过在VisualBasic应用程序中声明外部过程就能够访问WindowsAPI(以及其它的外部DLLs)。在声明了过程之后,调用它的方法与调用VisualBasic自己的过程相同。要声明一个DLL过程,需要在代码窗口的"声明"部分增加一个Declare语句,如果该过程返回一个值,应将其声明为Function。例如:DeclareFunctionpublicnameLib"libname"[Alias"alias
2、"][([[ByVal]variable[Astype][,[ByVal]variable[Astype]]...])]AsType如果过程没有返回值,可将其声明为Sub。缺省情况下,在标准模块中声明的DLL过程,可以在应用程序的任何地方调用它。在其他类型的模块中定义的DLL过程是模块私有的,必须在它们前面加上Private关键字,以示区分。特别提请注意的是,在32位的VisualBasic中过程名是区分大小写的。而在以前的16位版本中并不区分大小写,这是初学者容易出错的地方。Declare语句中的Lib子句用来告诉VisualBasic如何找到包含该过程的dll文件。如果引用的过
3、程属于Windows核心库(User32、Kernel32或GDI32),则可以不包含文件扩展名。例如:DeclareFunctionGetTickCountLib"kernel32"Alias"GetTickCount"()AsLong。对于其它DLL,Lib子句须指定文件的路径及扩展名。如果调用的WindowsAPI过程要使用字符串,那么在声明语句中必须增加一个Alias子句,以指定正确的字符集。包含字符串的WindowsAPI函数实际有两种格武ANSI格式Unicode格式。因此,在Windows头文件中,每个包含字符串的函数都同时有ANSI版本和Unicode版本。例如,下
4、面是SetWindowText函数的两种C语言描述。可以看到,第一个描述将函数定义为SetWindowTextA,尾部的"A"表明它是一个ANSI函数:SetWindowTextA(HWNDhWnd,LPCSTRlpString);第二个描述将它定义为SetWindowTextW,尾部的"w"表明它是一个Unicode函数:SetWindowTextW(HWNDHwnd,LPCWSTRlpString);因为两个函数实际的名称都不是"SetWindowText",要引用正确的函数就必须增加一个Alias子句:PrivateDeclareFunctionSetwindowTextLi
5、b"user32"Alias"SetWindowTextA"(ByValhwndAsLongg,ByVallpStringAsString)AsLong请注意,Alias子句后面的字符串必须是过程的真正名称,必须是区分大小写的。事实上,您只需要记住,只有WindowsNT才支持Unicode格式,而Windows95只支持ANSI格式就行了。至于两者的区别,作一般的应用程序开发是不需要了解的。VB5专业版在VB目录的Winapi子目录下,用几个文件提供了关于API的信息。Win32api.txt文件中包含了32位WindowsAPI函数中用到的函数和类型的结构声明以及全局常量的值
6、。用户可以用VB本身带的外接程序"API浏览器"来方便地使用Win32api.Txt,如下所示:点击菜单文件项的"加载文本文件…"从VB目录下的WINAPI目录中选择"WIN32API.TXT",就可以查看WINDOWS95系统的API函数的声明、常数定义和数据类型了。例如,我们打算查看函数InverRect()的声明。首先,点击"搜索"按钮,输入字符串"InverRect"。在"可选项"栏中,兰色的亮度条将移动到"InverRect"项上。再点按"添加"按钮,在"选定项"中就出现"InverRect"在VisualBasic中的声明了。接下来自然是点按"复制"按钮,然后将窗口切换
7、到VisualBasic开发环境中,在需要声明API函数的地方Ctrl+V(粘贴)即可。上面所讲的声明方法虽然简单,但只有使用WINDOWS本身的API函数才能这样。对于第三方提供的动态链接库(DLL)您只有用键盘老老实实地敲了。第二节:牛刀小试现在读者一定很想自己亲自试一下,下面举两个实际应用的例子让大家体会一下API的妙用吧!1.使一个窗体始终保持在屏幕的最上面我们知道VB本身自带的函数是难以完成此功能的,我们可以通过调用Windows的API函数:SetWind
此文档下载收益归作者所有