Использование ключевого слова Alias ​​для объявления функции в VBA - PullRequest
2 голосов
/ 22 апреля 2011

У меня есть код формы VBA MS Access, где я набираю следующее объявление функции:

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

Однако я получаю сообщение об ошибке Alias. Должен ли я добавить некоторые ссылки, чтобы использовать это?

1 Ответ

6 голосов
/ 22 апреля 2011

Нет, никаких специальных библиотек для использования не требуется 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, если произойдет сбой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...