Declare (Instrucción)

Visual Basic VBLR

Declare (Instrucción)

       

Se usa en el nivel de módulo para declarar referencias a procedimientos externos que están en una biblioteca de vínculos dinámicos (DLL).

Sintaxis 1

[Public | Private] Declare Sub nombre Lib "nombre_biblioteca" [Alias "nombre_alias"] [([lista_argumentos])]

Sintaxis 2

[Public | Private] Declare Function nombre Lib "nombre_biblioteca" [Alias "nombre_alias"] [([lista_argumentos])] [As tipo]

La sintaxis de la instrucción Declare consta de las siguientes partes:

Parte Descripción
Public Opcional. Se usa para declarar procedimientos que están disponibles para todos los demás procedimientos en todos los módulos.
Private Opcional. Se usa para declarar procedimientos que sólo están disponibles dentro del módulo donde se hace la declaración.
Sub Opcional (debe aparecer Sub o Function). Indica que el procedimiento no devuelve un valor.
Function Opcional (debe aparecer Sub o Function). Indica que el procedimiento devuelve un valor que se puede utilizar en una expresión.
nombre Requerido. Cualquier nombre válido de procedimiento. Observe que los puntos de entrada de las DLL distinguen mayúsculas de minúsculas.
Lib Requerido. Indica que el procedimiento que está declarando se encuentra en una DLL o un recurso de código. La cláusula Lib es obligatoria para todas las declaraciones.
nombre_
biblioteca
Requerido. Nombre del archivo DLL o del recurso de código que contiene el procedimiento declarado.
Alias Opcional. Indica que el procedimiento al que se llama tiene otro nombre en la DLL. Esto es útil cuando el nombre del procedimiento externo es el mismo que el de una palabra clave. También es posible usar Alias cuando un procedimiento de DLL tiene el mismo nombre que una variable, constante o cualquier otro procedimiento con el mismo alcance. Alias también resulta útil si algún carácter del nombre del procedimiento de la DLL no se admite como nombre.
nombre_
alias
Opcional. Nombre del procedimiento de la DLL o del recurso de código. Si el primer carácter no es un signo de número (#), nombre_alias es el nombre del punto de entrada del procedimiento en la DLL. Si # es el primer carácter, todos los caracteres que le siguen deberán indicar el número ordinal del punto de entrada del procedimiento.
lista_
argumentos
Opcional. Lista de variables que representan argumentos que se pasan al llamar al procedimiento.
tipo Opcional. Tipo de datos del valor devuelto por un procedimiento Function; puede ser Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (no admitido actualmente), Date, String (solamente de longitud variable), o Variant, un tipo definido por el usuario, o un tipo de objeto.

El argumento lista_argumentos posee las siguientes partes y sintaxis:

[Optional] [ByVal | ByRef] [ParamArray] nombre_variable[( )] [As tipo]

Parte Descripción
Optional Opcional. Indica que un argumento no se requiere. Si se usa, todos los argumentos subsiguientes de lista_argumentos también deben ser opcionales y deben declararse mediante la palabra clave Optional. No se puede utilizar Optional para ningún argumento si se utiliza ParamArray.
ByVal Opcional. Indica que el argumento se pasa por valor.
ByRef Indica que el argumento se pasa por referencia. ByRef es el modo predeterminado en Visual Basic.
ParamArray Opcional. Se usa sólo como el último argumento de lista_argumentos para indicar que el argumento final es una matriz Optional de elementos Variant. La palabra clave ParamArray le permite incluir un número arbitrario de argumentos. No se puede usar con ByVal, ByRef u Optional.
nombre_
variable
Requerido. Nombre de la variable que representa el argumento que se pasa al procedimiento; sigue las convenciones estándar de nombres de variables.
( ) Requerido para variables de matriz. Indica que nombre_variable es una matriz.
tipo Opcional. El tipo de datos del argumento que se pasa al procedimiento; puede ser Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (no admitido actualmente), Date, String (sólo longitud variable), Object, Variant, un tipo definido por el usuario o un tipo de objeto.

Comentarios

Para los procedimientos Function el tipo de datos del procedimiento determina el tipo de datos que devuelve. Puede usar una cláusula As a continuación de lista_argumentos para especificar el tipo de valor devuelto por la función. Dentro de lista_argumentos puede utilizar una cláusula As para especificar el tipo de datos de los argumentos que se pasan al procedimiento. Además de especificar cualquiera de los tipos de datos estándar, puede especificar As Any en lista_argumentos para inhibir la comprobación del tipo de datos y permitir el paso de cualquier tipo de datos al procedimiento.

Los paréntesis vacíos indican que el procedimiento Sub o Function no tiene ningún argumento y que Visual Basic debe comprobar que no se pasa ninguno. En el ejemplo siguiente, Primero no toma ningún argumento. Si usa argumentos en una llamada a Primero, ocurrirá un error:

Declare Sub Primero Lib "MiBiblioteca" ()

Si se incluye una lista de argumentos, se comprobará el número y el tipo de argumentos cada vez que se llame al procedimiento. En el ejemplo siguiente, Primero toma un argumento Long:

Declare Sub Primero Lib "MiBiblioteca" (X As Long)

Nota   No puede tener cadenas de longitud fija en la lista de argumentos de una instrucción Declare; sólo se pueden pasar cadenas de longitud variable a los procedimientos. Las cadenas de longitud fija pueden aparecer como argumentos de procedimientos, pero se convierten a cadenas de longitud variable antes de pasarse.

Nota   La constante vbNullString se utiliza al llamar a procedimientos externos, donde el procedimiento externo requiere una cadena cuyo valor es cero, que no es lo mismo que una cadena de longitud cero ("").