• Jueves 18 de Abril de 2024, 17:46

Autor Tema:  Como usar DLL de Matlab en ADA  (Leído 2231 veces)

TraiL_ko

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Como usar DLL de Matlab en ADA
« en: Viernes 1 de Octubre de 2010, 14:52 »
0
Hola,

LLevo un tiempo tratando de utilizar una dll creada en Matlab desde ADA.

El fichero ".m" desde el que creo la dll en MATLAB es muy sencillito (Es la primera prueba):

function [y] = suma (a,b)
y = a + b;

Sin embargo no hay manera de hacerlo funcionar en ADA. Soy capaz de inicializar la dll mediante el metodo "Initialize" de la misma, pero a la hora de ejecutar la funcion (llamada MlfSuma), salta una excepción, con su correspondiente ventanita indicando la inminente muerte (y desesperacion)

La instrucción en 0x00000000 hace referencia a la memoria en 0x00000000. La memoria no se puede "read".

Dependiendo de como varíe los parámetros de entrada de la función "mlfSuma" en ADA, hacia la que se hace el "pragma import" de la función en la librería; las direcciones 0x00000000 cambian a otros valores.

Creo que el problema está en el manejo de los mxArray. En "C" o "C++" he visto que utilizando el "Matrix.h" se puede hacer una llamada al tipo mxArray directamente, pero en ADA no he visto esta posibilidad, por lo que he intentado dos opciones.

1. Crear un record null
2. Crear el tipo mxArray e importarlo desde la libreria -libmx mediante "pragma Convention"

Ambos fallidos por si teníais dudas.

¿Alguien conoce alguna implementación parecida?

Un saludo,

Muchas Gracias.