AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Funciones estándar / Funciones de Windows / Funciones varias de Windows
  • 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
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadApple WatchUniversal Windows 10 App
Otros
Procedimientos almacenados
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.
Ejemplo
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 propiedadTipo utilizadoEfecto
DirecciónSystem integerDirecció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ónConstante de tipo IntegerMétodo para llamar a la DLL. Existen tres convenciones de llamada disponibles a través de las siguientes constantes:
  • CDECL
  • STDCALL
  • ESTE LLAMADO
DLLNombreCadena de caracteresNombre DLL.
Nombre de la funciónCadena de caracteresNombre 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úmeroIntegroNú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ónConstante de tipo IntegerOpciones 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étricoArray...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ónEntero o cadenaTipo 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:
APIEjecuta una función que se encuentra en una DLL externa.
CallDLL32Ejecuta una función que se encuentra en una DLL externa.
Versión mínima requerida
  • Versión 16
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 27/01/2023

Señalar un error o enviar una sugerencia | Ayuda local