*.dll文件中的函数名称可能和你前面Declare部分的名称不一致,那么alias关键字就是说明*.dll文件中的API函数名称叫什么名字的,如果*.dll文件中的函数名称与前面Declare部分的名称一致,alias就可以省略不写。
例如API函数CopyFile,包括MSDN对这个API函数的描述都是用的是CopyFile这个名称,这个函数被保存在kernel32.dll文件中,而且在kernel32.dll中这个API对应的名称叫"CopyFileA",kernel32.dll中是找不到"CopyFile"这个名称的函数的,所以在定义这个API的时候先声名固定部分:
Private Declare
然后注意CopyFile函数是有返回值的,所以接着写:
Function CopyFile
后面接着写API函数的库名称:
Lib "kernel32.dll" (因为库都是dll文件,也可以省略写成Lib "kernel32")
由于库文件中的API名称不是"CopyFile",所以下面写:
Alias "CopyFileA"
然后写这个API的参数部分,参数用括号包含起来:
(ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long)
函数最后是有返回值的,在括号后跟着写:
As Long
这里就完成了整个API函数的声明。
把以上内容连接起来写就是:
Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
[此贴子已经被作者于2013-6-1 15:50:12编辑过]