|
|
|
|
- Uso de las variables de descripción de la API
- Propiedades específicas de la descripción de las variables de descripción de la API
- Casos especiales
- Funciones que utilizan las variables de descripción de la API
Descripción de la API (Tipo de variable)
Un Descripción de la API se utiliza para describir una API, sus parámetros, su valor de retorno y sus opciones de llamada mediante programación. Las características de este tipo se pueden definir y modificar mediante diferentes propiedades WLanguage. Observación: Para obtener más información sobre la declaración de este tipo de variables y el uso de propiedades WLanguage, consulte Declarar una variable.
GetModuleHandle is API Description GetModuleHandle..DLLName = "kernel32" GetModuleHandle..FunctionName = "GetModuleHandleA" GetModuleHandle..ReturnType = apiSystemInt GetModuleHandle..Parameter[1]..Type = apiAnsiString
// Call a fictitious DLL for calculating the distance between 2 points on the surface of the Earth CalculateDistance is API Description CalculateDistance..DLLName = "GEO.DLL" CalculateDistance..FunctionName = "CalculateDistance" CalculateDistance..Parameter[1]..Type = apiReal_8 CalculateDistance..Parameter[2]..Type = apiReal_8 CalculateDistance..Parameter[3]..Type = apiReal_8 CalculateDistance..Parameter[4]..Type = apiReal_8 CalculateDistance..ReturnType = apiReal_8
distance is real = CalculateDistance(Latitude1, Longitude1, Latitude2, Longitude2)
Observaciones Uso de las variables de descripción de la API El Descripción de la API se pueden usar variables: - directamente, especificando los valores de los diferentes parámetros si es necesario. Por ejemplo:
GetModuleHandle is API Description GetModuleHandle..DLLName = "kernel32" GetModuleHandle..FunctionName = "GetModuleHandleA" GetModuleHandle..ReturnType = apiSystemInt GetModuleHandle..Parameter[1]..Type = apiAnsiString
// Direct use GetModuleHandle(Null)
- con API. Por ejemplo:
GetModuleHandle is API Description GetModuleHandle..DLLName = "kernel32" GetModuleHandle..FunctionName = "GetModuleHandleA" GetModuleHandle..ReturnType = apiSystemInt GetModuleHandle..Parameter[1]..Type = apiAnsiString
// Use of the API function API(GetModuleHandle, Null)
Propiedades específicas de la descripción de las variables de descripción de la API Las siguientes propiedades pueden ser utilizadas para manipular una Descripción API: | | | Nombre de la propiedad | Tipo utilizado | Efecto |
---|
Dirección | System integer | Dirección de la función. Si se especifica esta propiedad, ..NombreDeFunción contiene la dirección de la función, ...Número está ajustado a -1 y ..DLLNombre está configurado en "" (cadena vacía). | LlamadaConvención | Constante de tipo Integer | Método para llamar a la DLL. Existen tres convenciones de llamada disponibles a través de las siguientes constantes: | DLLNombre | Cadena de caracteres | Nombre DLL. | Nombre de la función | Cadena de caracteres | Nombre de la función que se encuentra en la DLL. Si se especifica esta propiedad, también se debe especificar la propiedad ..DLLName. En este caso, el valor de la propiedad ..Number es -1 y el de la propiedad ..Address es 0. | Número | Integro | Número de la función. Si se especifica esta propiedad, también se debe especificar la propiedad ..DLLName. En este caso, ..NombreDeFunción contiene el número y ..Dirección se resetea a 0. | Opción | Constante de tipo Integer | Opciones para llamar a la API. Esta propiedad puede corresponder a una de las siguientes constantes: - apiLockHilos: Si se utiliza esta constante, la llamada a la API bloquea todos los hilos de discusión actuales. Esto se utiliza para proteger la DLL externa de las llamadas multihilo.
- apiFreeDLLL: Si la DLL se cargó para llamar a la API, se descargará. Esta constante se ignora si la DLL ya estaba cargada durante la llamada a la API..
- apiRestoreSystemSettings: Si se utiliza esta constante, los parámetros del sistema se restaurarán después de la llamada a la API.. De hecho, algunas APIs modifican los parámetros del sistema.
Las opciones predeterminadas son apiRestoreSystemSettings + apiFreeDLL. | paramétrico | Array | ...El tipo de cada elemento del array se utiliza para indicar el tipo de cada parámetro de la API. Esta propiedad puede corresponder a: - un nombre de estructura en forma de cadena si el parámetro es una estructura pasada como parámetro por valor,
- una de las siguientes constantes:
- apiBooleano: el parámetro es un booleano.
- apiBuffer: el parámetro es un búfer.
- apiCarácter: el parámetro es un carácter Ansi si el proyecto está en modo Ansi, el parámetro es un carácter Unicode si el proyecto está en modo Unicode.
- apiAnsiCarácter: el parámetro es un carácter Ansi.
- apiUnicodeCarácter: el parámetro es un carácter Unicode
- apiString: el parámetro es una cadena de caracteres Ansi si el proyecto está en modo Ansi, el parámetro es una cadena de caracteres Unicode si el proyecto está en modo Unicode.
- apiAnsiString: el parámetro es una cadena de caracteres Ansi.
- apiUnicodeString: el parámetro es una cadena de caracteres Unicode.
- apiInt_4: el parámetro es un entero de 4 bytes.
- apiInt_8: el parámetro es un entero de 8 bytes.
- apiSystemInt: el parámetro es un entero del sistema.
- apiReal_4: el parámetro es un real de 4 bytes.
- apiReal_8: el parámetro es un real de 8.- bytes
| Tipo de devolución | Entero o cadena | Tipo devuelto por la API. Esta propiedad corresponde a: - apiBooleano: la API devuelve un booleano.
- apiBuffer: el API devuelve un buffer.
- apiCarácter: la API devuelve un carácter Ansi si el proyecto está en modo Ansi, un carácter Unicode si el proyecto está en modo Unicode.
- apiAnsiCarácter: el API devuelve un carácter Ansi.
- apiUnicodeCarácter: la API devuelve un carácter Unicode.
- apiString: la API devuelve una cadena de caracteres Ansi si el proyecto está en modo Ansi, una cadena de caracteres Unicode si el proyecto está en modo Unicode.
- apiAnsiString: la API devuelve una cadena de caracteres Ansi.
- apiUnicodeString: la API devuelve una cadena de caracteres Unicode.
- apiInt_4: la API devuelve un entero de 4 bytes.
- apiInt_8: la API devuelve un entero de 8 bytes.
- apiSystemInt: la API devuelve un entero del sistema.
- apiReal_4: el API devuelve un real de 4 bytes.
- apiReal_8: el API devuelve un valor real de 8.- bytes
| Observación: Estas propiedades se pueden utilizar con una de las siguientes sintaxis: - <Nombre de variable>..<Nombre de propiedad>
- <Nombre de variable>.<Nombre de propiedad>
Casos especiales - Se debe declarar una variable de descripción de la API para cada función utilizada.
- La DLL se carga una sola vez, y no para cada variable.
Funciones que utilizan las variables de descripción de la API Las siguientes funciones pueden ser utilizadas para manipular una Descripción API:
| | API | Ejecuta una función que se encuentra en una DLL externa. | CallDLL32 | Ejecuta una función que se encuentra en una DLL externa. |
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|