我有VBA MS Access表单代码,我输入以下函数声明:
Public Declare Function GetUserName Lib "advapi32.dll" () Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
但是我在Alias
收到错误。我是否必须添加一些引用才能使用它?
答案 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。