FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
problemas con DLL de MatLab
Hola a todos... bueno, la duda que planteo es la siguiente:
Tengo una aplicación de delphi, en la cual debo utilizar una DLL creada en matlab... para que sea facil y sin complicaciones creé una DLL en Matlab que sume 1 al valor de entrada, la pruebo en MatLab y funciona correctamente. Ahora en delphi, utilizo una de las formas, que es definirme la funcion aclarando que es external y dando el nombre de la DLL. En primera instancia, al correr la funcion salta un error, que habla del puntero de iniciacion de la dll o algo así (no me acuerdo exactamente), pero luego encontré que tengo que indicarle la funcion de la DLL y agregar al final de la funcion (despues del nombre de la DLL) index 1 (en este caso)... La funcion de la DLL tiene un parametro de entrada (entero) y su salida será otro entero. Si bien de esta manera no da errores, el resultado de la funcion, es un numero muy grande, como 200 millones y pico, creo... Probé poniendo como parametro de salida de la funcion un real, y al mostrar el resultado haciendo el floattostr es NAN (not a number). Para variar un poco, modifiqué la DLL e hice que no tuviera parametros de entraeda, y que la salida sea un string. Al tratar de correrla en delphi, tampco hubo errores, pero la salida era un string vacío. Que estoy haciendo mal? a mi me suena que es un tema de definicion de los tipos de variables utilizadas, si real, entero, string, byte, word, yo que se, creo que puede ser por ese lado... El tema es que en MatLab no se si se puede definir variables, o el programa se da cuenta por si solo que tipo es dependiendo del valor que se le cargue... Que puede ser? me está volviendo loco este tema, parece no ser complicado, pero ya me lleva unas cuantas horas y nada, gran bajón !!! les dejo la funcion en delphi
y el .m de matlab, que se llama suma.m sería function B=fun_suma(A) B=A+1 luego se genera la dll en matlab (suma.dll) y se prueba, sin problemas... también probé llamando al .m y a la .dll igual que la funcion (fun_suma) y tampoco funciona
__________________
Marcelo C. Última edición por emeceuy fecha: 01-08-2007 a las 07:09:11. |
#3
|
|||
|
|||
ya subí la DLL... muchas gracias !
en realidad no se si supongo lo del entero, no lo tengo claro, pero al menos con un string no debería exisitir ese problema y no logro que recuperar el valor de salida (string) de la DLL tampoco...
__________________
Marcelo C. |
#4
|
||||
|
||||
Vaya, buscando en la librería... la única función exportada que encontré es:
MathCad debe trabajar de alguna forma no muy estandar que digamos (ademas que hay que instalar unas docenas de librerías solo para poder hacer la prueba). Si no es imperativo el uso del MathCad te aconsejo buscar componentes que te hagan las funciónes matemáticas que necesitas en Delphi; además verifica si hay algúna forma mediante OLE de acceder al MathCad. Sin instalarlo no puedo hacer más amigo, lo lamento (por ahora) Suerte! |
#5
|
|||
|
|||
el tema es que lo que necesito es invertir una matriz de numeros complejos de 500 x 500 !!! no encontré ningun componente en delphi que lo hiciera, y por tanto decidí hacer yo una rutina... el procedimiento demora más de 25 minutos en una muy buena maquina (3.5G de procesador duo y 1G de memoria)... entonces pensé en optimizarlo utilizando matlab que la resuelve rapidamente, pero no puedo hacer funcionar la dll ni con una funcion hiper sencilla !!! además necesitaría hacer funcionar la DLL para otro proyecto que tambien implica matlab
__________________
Marcelo C. |
#6
|
||||
|
||||
No desesperes, instalo el MathCad y haber que se trae contra nosotros!
|
#7
|
|||
|
|||
muchas gracias por el animo por las dudas, rectifico que es MatLAB
__________________
Marcelo C. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Cómo me comunico con Matlab mediante COM | felipin007 | Providers | 2 | 21-04-2010 07:49:34 |
Combinar Matlab-Builder | Amago | C++ Builder | 0 | 10-06-2004 13:03:37 |
|