Librería externa
Este objeto visual permite declarar una librería de enlace dinámico externa y sus funciones, a las que podremos invocar desde distintos puntos del proyecto. Para crear un objeto de este tipo seleccionar la opción nuevo objeto/librería externa del menú objetos de Velneo vDevelop o a través de la galería de objetos.
Las propiedades de este objeto son:
Etiqueta alfanumérica que identifica de forma unívoca al objeto dentro del proyecto. Este identificador será el que usemos para referenciarlo en otras propiedades de otros objetos.
El identificador constará de mayúsculas y números exclusivamente. Al identificar de forma unívoca un objeto no puede haber duplicidad.
Nombre de la librería externa; ha de ser el nombre del archivo sin la extensión.
Podemos definir el estilo privado que limita el acceso del usuario final al objeto desde puntos donde no se haya programado el acceso al mismo.
Esta propiedad nos permite documentar el uso del objeto.
Esta propiedad nos permite especificar el sistema de convención de llamada a la librería. Los valores posibles son:
- C_DEFAULT
- C_X86_DEFAULT
- C_X86_WIN32_STD
- C_X86_WIN32_FAST_MS
- C_X86_WIN32_FAST_GNU
- C_X86_WIN32_THIS_MS
- C_X86_WIN32_THIS_GNU
- C_X64_WIN64
- C_X64_SYSV
- C_PPC32_DARWIN
- C_ARM_ARM
- C_ARM_THUMB
- C_MIPS32_EABI
- C_MIPS32_PSPSDK
Es necesario crear un subobjeto por cada función que se desee usar de la librería. Para añadir una pulsaremos el botón Añadir subobjeto
del panel de subobjetos del panel de propiedades del objeto y seleccionaremos la opción Función de librería externa.

Esto hará que se añada el nuevo sub-objeto función al panel de sub-objetos.
Para editar sus propiedades, haremos doble clic sobre ella. Son:
Etiqueta alfanumérica que identifica de forma unívoca al subobjeto dentro del proyecto. Este identificador será el que usemos para referenciarlo en otras propiedades de otros objetos.
El identificador constará de mayúsculas y números exclusivamente. Al identificar de forma unívoca al sub-objeto no puede haber duplicidad dentro del mismo objeto.
Nombre de la función a declarar de la librería externa.
Podemos definir los estilos:
Limita el acceso del usuario final a cierta información sobre el objeto.
Permite que el objeto sea usado cuando la caja sea heredada.
Esta propiedad nos permite documentar el uso del objeto.
Especificación del tipo de dato de retorno. Los valores posibles son:
- void
- char
- unsigned char
- short
- unsigned short
- int
- long
- unsigned long
- long long
- unsigned long long
- bool
- float
- double
- const void*
- const char*
- const unsigned char*
- const short*
- const unsigned short*
- const int*
- const unsigned int*
- const long*
- const unsigned long*
- const long* long*
- const unsigned long* long*
- const bool*
- const float*
- const double*
Esta propiedad nos permite especificar el sistema de convención de llamada a la función de la librería. Los valores posibles son:
- C_DEFAULT
- C_X86_DEFAULT
- C_X86_WIN32_STD
- C_X86_WIN32_FAST_MS
- C_X86_WIN32_FAST_GNU
- C_X86_WIN32_THIS_MS
- C_X86_WIN32_THIS_GNU
- C_X64_WIN64
- C_X64_SYSV
- C_PPC32_DARWIN
- C_ARM_ARM
- C_ARM_THUMB
- C_MIPS32_EABI
- C_MIPS32_PSPSDK
Si la función a declarar tiene parámetros, los declararemos uno a uno. Para añadir uno seleccionaremos la función en el panel de subobjetos, pulsaremos el botón Añadir subobjeto
del panel de subobjetos del panel de propiedades del objeto y seleccionaremos la opción Parámetro de función.

Esto hará que se añada el nuevo sub-objeto parámetro de función al panel de sub-objetos.

Para editar sus propiedades, haremos doble clic sobre ella. Son:
Etiqueta alfanumérica que identifica de forma unívoca al objeto dentro del proyecto. Este identificador será el que usemos para referenciarlo en otras propiedades de otros objetos.
El identificador constará de mayúsculas y números exclusivamente. Al identificar de forma unívoca un objeto no puede haber duplicidad.
Nombre del parámetro de la función de la librería externa.
Podemos definir los estilos:
Limita el acceso del usuario final a cierta información sobre el objeto.
Permite que el objeto sea usado cuando el proyecto sea heredado.
Esta propiedad nos permite documentar el uso de sub- objeto.
Especificación del tipo de dato del parámetro. Los valores posibles son:
- void
- char
- unsigned char
- short
- unsigned short
- int
- long
- unsigned long
- long long
- unsigned long long
- bool
- float
- double
- const void*
- const char*
- const unsigned char*
- const short*
- const unsigned short*
- const int*
- const unsigned int*
- const long*
- const unsigned long*
- const long* long*
- const unsigned long* long*
- const bool*
- const float*
- const double*
Si nuestra aplicación va a hacer uso de una librería externa que debamos suministrar a los clientes que la ejecuten, podremos usar el objeto Fichero adjunto para distribuirla de forma automática.
Podremos hacer la llamada a funciones de librerías externas declaradas tanto en el proyecto en curso como en proyectos heredados desde cualquier objeto o subobjeto donde pueda declararse una fórmula.
El acceso a librerías externas utiliza los tipos de datos de C/C++ para comunicarse. Esto facilita el uso de librerías entre distintos sistemas operativos, ya que se trata de tipos de datos comunes en todas las plataformas.
Desde proyectos de Velneo podremos hacer uso de librerías en las que se pasen parámetros por valor o constantes tipo * (de aquellos tipos que tenemos definidos en Velneo vDevelop), pero no variables por referencia; es decir, que para obtener información de la librería siempre debemos hacerlo a través del valor de retorno.
Desde proyectos de Velneo no podremos uso de librerías que manejen estructuras.
Con el fin de garantizar tanto la estabilidad como la seguridad de Velneo vServer el acceso a librerías externas desde procesos ésta permitido solamente en procesos ejecutados en primer o segundo plano (ejecución en cliente), no siendo posible hacer llamadas a librerías externas desde procesos ejecutados en tercer plano (en el servidor). Este objeto siempre debe ser creado dentro de un proyecto de aplicación; ya que, en la versión actual, las librerías declaradas en proyecto de datos no son funcionales.
La arquitectura de la librería ha de ser coincidente con la de Velneo vClient, es decir, que desde un Velneo vClient de 64 bits solamente podremos hacer llamadas a librerías de 64 bits; no podremos hacer llamadas a librerías de 32 bits.
En próximas versiones, el uso de librerías externas en Windows requerirá la configuración y activación de nuevos parámetros requeridos por Microsoft para mejorar la seguridad de las aplicaciones en Velneo.
Por favor, comprueba ya que las librerías externas que usas soportan esta configuración y comienza ya a trabajar en la adaptación en caso contrario.
Debemos desactivar la directiva Fixed Base Address (No /FIXED:NO) y debemos activar la directiva RandomizedBaseAddress (Yes /DYNAMICBASE) en la compilación de la librería en el caso de que queramos usar esta librería con Velneo.


Para comprobar si tu librería será funcional en próximas versiones, puedes hacerlo ya usando Velneo vClient con este instalable de la versión 29.0, y SOLO con este:
Si no funciona la librería con la versión 29.0 pero sí te funciona con la versión 29.1, entonces es que debes configurarla como indicamos. Si te funciona correctamente, es que soporta ya estas configuraciones.
Una vez hechas las configuraciones requeridas, puedes volver a comprobarlo con la versión 29.0 que te hemos ofrecido para descargar.
Última actualización 1yr ago