使用Alias关键字在VBA中声明一个函数

时间:2011-04-22 15:13:30

标签: winapi vba vb6 access-vba

我有VBA MS Access表单代码,我输入以下函数声明:

Public Declare Function GetUserName Lib "advapi32.dll" () Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

但是我在Alias收到错误。我是否必须添加一些引用才能使用它?

1 个答案:

答案 0 :(得分:6)

不,使用Alias不需要特殊的库;这都是语言中的内容。

但你的宣言是错误的。在Alias之前放置了一组额外的括号,这些括号使编译器感到困惑。

除了纯语法之外,第二个参数(nSize)实际上是Long指针,这意味着您需要将其传递给ByRef VBA。

因此修改后的声明将如下所示:

Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
        (ByVal lpBuffer As String, ByRef nSize As Long) As Long

如果函数成功,返回值将为1,如果失败则返回0。