|
|
|
|
- Usando las variables de la API description
- Propiedades específicas de las variables API description
- Casos especiales
- Funciones que utilizan las variables de la API description
API description (Tipo de Variable)
Un API description Variable se utiliza para describir un 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 cambiar mediante diferentes propiedades WLanguage. Observación: Para obtener más información sobre la declaración de este tipo de variable 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 Usando las variables de la API description Las variables API description pueden ser utilizadas: - 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 la función 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 las variables API description Las siguientes propiedades pueden ser utilizadas para manipular y API description: | | | Nombre de la propiedad | Tipo utilizado | Efecto |
---|
Address | Entero del sistema | Address de la función. Si se asigna un valor a este Property, el FunctionName Property contiene la dirección de la función, el Number Property es set a -1 y el DLLName Property es set a "" (cadena vacía). | DLLNombre | Cadena de caracteres | Nombre DLL. | 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: | Nombre de la función | Cadena de caracteres | Nombre de la función que se encuentra en la DLL. Si se especifica este Property, también debe especificarse el DLLName Property. 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 este Property, también debe especificarse el DLLName Property. En este caso, el NombreFunción Property contiene el número y el Address se pone a 0. | Opción | Constante de tipo Integer | Opciones para llamar a la API. Esta Property puede corresponder a una de las siguientes constantes: - apiLockThreads: Si se utiliza esta constante, la llamada a la API bloquea todos los hilos de rosca actuales.. Esto se utiliza para proteger el DLL externo de las llamadas multi-Thread.
- apiFreeDLL: 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 restablecerán después de la llamada al API. De hecho, algunas APIs modifican los parámetros del sistema.
Las opciones predeterminadas son apiRestoreSystemSettings + apiFreeDLL. | paramétrico | Array | La propiedad Type de cada elemento del array indica 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:
- apiBoolean: el parámetro es un booleano.
- apiBuffer: el parámetro es un búfer.
- apiCharacter: 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.
- apiAnsiCharacter: el parámetro es un carácter Ansi.
- apiUnicodeCharacter: 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_1: el parámetro es un entero de 1 byte.
- apiInt_2: el parámetro es un entero de 2 bytes.
- apiInt_4: el parámetro es un entero de 4 bytes.
- apiInt_8: el parámetro es un entero de 8 bytes.
- apiUnsignedInt_1: el parámetro es un entero de 1 byte sin signo.
- apiUnsignedInt_2: el parámetro es un entero de 2 bytes sin signo.
- apiUnsignedInt_4: el parámetro es un entero de 4 bytes sin signo.
- apiUnsignedInt_8: el parámetro es un entero de 8 bytes sin signo.
- 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. Este Property corresponde a: - apiBoolean: el API devuelve un booleano.
- apiBuffer: el API devuelve un buffer.
- apiCharacter: el API devuelve un carácter Ansi si el proyecto está en modo Ansi, un carácter Unicode si el proyecto está en modo Unicode.
- apiAnsiCharacter: el API devuelve un carácter Ansi.
- apiUnicodeCharacter: el API devuelve un carácter Unicode.
- apiString: el 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: el API devuelve una cadena de caracteres Ansi.
- apiUnicodeString: el API devuelve una cadena de caracteres Unicode.
- apiInt_1: la API devuelve un entero de 1 byte.
- apiInt_2: la API devuelve un entero de 2 bytes.
- apiInt_4: el API devuelve un entero de 4 bytes.
- apiInt_8: el API devuelve un entero de 8 bytes.
- apiUnsignedInt_1: la API devuelve un entero de 1 byte.
- apiUnsignedInt_2: la API devuelve un entero de 2 bytes.
- apiUnsignedInt_4: el API devuelve un entero de 4 bytes.
- apiUnsignedInt_8: el API devuelve un entero de 8 bytes. * apiSystemInt: el API devuelve un entero del sistema.
- apiReal_4: el API devuelve un real de 4 bytes.
- apiReal_8: el API devuelve un real de 8.- bytes
|
Casos especiales - Se debe declarar una API description Variable para cada función utilizada.
- El DLL se carga una sola vez, y no por cada Variable.
Funciones que utilizan las variables de la API description Las siguientes funciones pueden utilizarse para las variables manipular API description:
| | 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…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|