ADA - Cargas de dll en ada95

 
Vista:

Cargas de dll en ada95

Publicado por Peterax (3 intervenciones) el 16/03/2006 22:34:23
Hola, necesito ayuda referente a como cargar librerias dll en ada95.
El problema que tenemos en un proyecto es que nos consume demasiada memoria un y necesitamos realizar la carga de ciertos paquetes o clases como librerias dll con lo que descargariamos en gran medida al compilador, con lo cual iria mas rapido.

Si alguien, alguna vez a realizado algo parecido, le agradeceria mucho su ayuda.
Sé que es con el paquete de ada win32 pero gracias al mito que corre sobre él, nunca la hemos utilizado. Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Cargando librerías DLL en Ada

Publicado por Alejandro (155 intervenciones) el 30/06/2023 16:37:20
En Ada, puedes cargar librerías DLL utilizando el paquete "Interfaces.C" y las capacidades proporcionadas por el enlace dinámico de Win32. Aquí tienes un ejemplo de cómo cargar una librería DLL y llamar a una función desde Ada:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
with Interfaces.C;
 
procedure Main is
   package C renames Interfaces.C;
   type Func_Ptr is access function (Param : C.int) return C.int;
   pragma Import (C, "nombre_de_la_libreria.dll", Func_Ptr);
 
   Result : C.int;
 
   -- Ejemplo de llamada a una función de la librería DLL
   function Func (Param : C.int) return C.int is
      external name "nombre_de_la_funcion";
   begin
      return Func_Ptr (Param);
   end Func;
 
begin
   Result := Func (42);
   -- Realiza otras operaciones con el resultado
end Main;

En este ejemplo, se utiliza la declaración `pragma Import` para importar el nombre de la librería DLL y la función que deseas utilizar en tu código Ada. A continuación, se declara un tipo de acceso `Func_Ptr` para representar el puntero a la función que se cargará desde la DLL.

Dentro del cuerpo del programa, puedes llamar a la función importada como si fuera una función Ada normal. La función `Func` es un ejemplo de cómo puedes envolver la llamada a la función DLL utilizando el puntero de función importado.

Recuerda reemplazar "nombre_de_la_libreria.dll" con el nombre real de tu librería DLL y "nombre_de_la_funcion" con el nombre real de la función que deseas llamar.

Es importante destacar que el paquete "Interfaces.C" proporciona una interfaz de bajo nivel para trabajar con código en C desde Ada. Asegúrate de comprender los detalles de cómo utilizar correctamente este paquete y de seguir las convenciones de llamada y tipos adecuados al trabajar con librerías DLL.

Ten en cuenta que el enlace dinámico y el uso de librerías DLL pueden variar dependiendo del sistema operativo y la implementación de Ada que estés utilizando. Consulta la documentación correspondiente y asegúrate de adaptar el código a tus necesidades y entorno específicos.

Espero que esta solución te sea útil para cargar librerías DLL en Ada. ¡Buena suerte con tu proyecto!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar