VB 版 (精华区)

发信人: zxfsnow (别怕我伤心), 信区: VB
标  题: VB的API编程精粹-1(前面有转载)
发信站: 哈工大紫丁香 (2000年05月31日12:20:04 星期三), 转信

发信人: esc (书剑飘零), 信区: VB
标  题: VB的API编程精粹-1
发信站: 虎踞龙盘东南站 (Fri Aug 20 15:50:31 1999), 转信

VB的API编程精粹



                      摘自 FoxFly.126.com 主页.


      Visual Basic以友好易学的可视化开发环境闻名于 世,成为人们学习计算机

  编程的首选语言。目前,全世界 大概有300多万人使用着Visual Basic语言。如果

  您想在 这茫茫众生中出类拔萃,那么您就不得不学习API (Application Program

  lnterface,即Windows的应用程 序编程接口)编程。不懂API,那可成不了高手。


  第一节:API基础

      API说到底就是一系列的底层函数,是系统提供给 用户用于进入操作系统核心,


  进行高级编程的途径。通 过在Visual Basic应用程序中声明外部过程就能够 访问

  Windows API(以及其它的外部DLLs)。在声明 了过程之后,调用它的方法与调用Visu
al

  Basic自 己的过程相同。要声明一个DLL过程,需要在代码窗 口的"声明"部分增加一


  Declare语句,如果该过 程返回一个值,应将其声明为Function。例如:

  Declare Function publicname Lib "libname" [Alias "alias"] [([[ByVal]

  variable [As type] [,[ByVal] variable [As type]]...])] As Type

  如果过程没有返回值,可将其声明为Sub。

  缺省情况下,在标准模块中声明的DLL过程,可 以在应用程序的任何地方调用它。

  在其他类型的模块中定义的DLL过程是模块私有的,必须在它们前面 加上Private

  关键字,以示区分。特别提请注意的是,在32位的Visual Basic中过程名是区分大

  小 写的。而在以前的16位版本中并不区分大小写,这是初学者容易出错的地方。

  Declare语句中的Lib子句用来告诉Visual Basic如何找到包含该过程的dll文件。

  如果引用的过 程属于Windows核心库(User32、Kernel32或 GDI32),则可以不包含

  文件扩展名。例如:

  Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount"() As Lon
g。

  对于其它DLL, Lib子句须指定文件的路径及扩展名。

  如果调用的Windows API过程要使用字符串,那 么在声明语句中必须增加一个Alias

  子句,以指定正确的字符集。包含字符串的Windows API函数实 际有两种格武ANSI格


  式Unicode格式。因此,在Windows头文件中,每个包含字符串的函数都同时有 ANSI版


  本和Unicode版本。 例如,下面是SetWindowText函数的两种C语言描 述。可以看到,


  第一个描述将函数定义为SetWindowTextA, 尾部的"A"表明它是一个ANSI函数:

  SetWindowTextA(HWND hWnd,LPCSTR lpString);

  第二个描述将它定义为SetWindowTextW,尾部的 "w"表明它是一个Unicode函数:

  SetWindowTextW(HWND Hwnd,LPCWSTR lpString);

  因为两个函数实际的名称都不是"SetWindow Text",要引用正确的函数就必须增加一


  个Alias子句:


  Private Declare Function SetwindowText Lib "user32" Alias "SetWindowTextA"


  (ByVal hwnd As Longg,ByVal lpString As String) As Long

  请注意, Alias子句后面的字符串必须是过程的 真正名称,必须是区分大小写的。

  事实上,您只需要 记住,只有Windows NT才支持Unicode格式,而 Windows 95只支

  持ANSI格式就行了。至于两者的区 别,作一般的应用程序开发是不需要了解的。

  VB5专业版在VB目录的\Winapi子目录下,用几 个文件提供了关于API的信息。

  Win32api.txt文件中 包含了32位Windows API函数中用到的函数和类型的 结构声明

  以及全局常量的值。用户可以用VB本身带的外 接程序"API浏览器"来方便地使用

  Win32api.txt,如下 所示: 点击菜单文件项的"加载文本文件…"从VB目 录下的

  WINAPI目录中选择"WIN32API.TXT",就可以 查看WINDOWS 95系统的API函数的声明、


  常数定义和 数据类型了。例如,我们打算查看函数InverRect() 的声明。首先,点

  击"搜索"按钮,输入字符串 "InverRect"。在"可选项"栏中,兰色的亮度条将移 动

  到"InverRect"项上。再点按"添加"按钮,在"选 定项"中就出现"InverRect"在

  Visual Basic中的 声明了。接下来自然是点按"复制"按钮,然后将窗 口切换到

  Visual Basic开发环境中,在需要声明API 函数的地方Ctrl+V(粘贴)即可。

  上面所讲的声明方法虽然简单,但只有使用WIN DOWS本身的API函数才能这样。对于

  第三方提供的动态链接库(DLL)您只有用键盘老老实实地敲了。
--
既然要注定流浪,风又何必苦苦推难。
    既然帆想要靠岸,海又何必处处阻拦。


  
--

 以科计为本,以产业报国!
  超越自我,飞跃无限!
  

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.235.249]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.114毫秒