2 votes

En utilisant le mot-clé Alias pour déclarer une fonction en VBA

J'ai du code de formulaire MS Access VBA, où je tape la déclaration de fonction suivante :

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

Cependant, je reçois une erreur sur Alias. Dois-je ajouter des références pour pouvoir utiliser cela?

6voto

Cody Gray Points 102261

Non, aucune bibliothèque spéciale n'est nécessaire pour utiliser Alias; tout est intégré dans le langage.

Mais votre déclaration est fausse. Vous avez un jeu de parenthèses en trop juste avant Alias qui perturbe le compilateur.

Outre la syntaxe pure, le deuxième paramètre (nSize) est en fait un pointeur vers un Long, ce qui signifie que vous devez le passer ByRef en VBA.

La déclaration révisée ressemblerait donc à ceci :

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

La valeur de retour sera 1 si la fonction réussit, ou 0 si elle échoue.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X