Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-08-2007
emeceuy emeceuy is offline
Miembro
 
Registrado: jun 2003
Ubicación: Uruguay
Posts: 122
Poder: 21
emeceuy Va por buen camino
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
Código Delphi [-]
function fun_suma(A:integer):integer; stdcall; external 'suma.dll';

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.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 20:36:03.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi