FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Enlazar Librería Dll .NET en Delphi
Buenos días a todos,
Tengo el siguiente problema. Estoy desarrollando un proyecto en el que tengo que integrarme con otra aplicación. Para ello tengo una librería dll de la otra aplicación con la que debería de realizar la integración. Yo programo en Delphi con el BDS2006. Según me han dicho la librería de la otra aplicación está desarrollada en .NET. He referenciado la función de la dll de la siguiente forma:
Y después la uso directamente:
La aplicación compila pero cuando la inicio desde el BDS se me detiene al inicializar y si le doy a continuar da una excepción EAccessViolation. ¿Qué estoy haciendo mal?¿Qué puede estar ocurriendo? Necesito ayuda, es urgente
__________________
"Patientia et constantia taelecum" |
#2
|
|||
|
|||
Hola de nuevo,
He probado simplemente a cargar y liberar la librería y sí he podido, es decir:
Esto sí funciona. Ahora lo que pretendo es encontrar la función que quiero usar con GetProcAddress pero no entiendo como se hace. Espero vuestra ayuda. Muchas gracias.
__________________
"Patientia et constantia taelecum" |
#3
|
|||
|
|||
Siguiendo con la investigación y con el tema he dado con lo siguiente que no es más que la carga de la librería dinámicamente
Ejecutando en el depurador me dice que 'Not enough actual parameters' cuando miro la variable DLLFunc y por supuesto nunca asigna la función. Ya no sé por donde seguir. Gracias.
__________________
"Patientia et constantia taelecum" |
#4
|
||||
|
||||
Cuando dices "cuando miro la variable DLLFunc", ¿te refieres a la línea "if Assigned(DLLFunc) then"?
|
#5
|
|||
|
|||
Sí Nuño a eso me refería.
Ejecutando el programa paso a paso voy viendo el valor que toman las variables locales como DLLFunc. En todo el proceso veo que DLLFunc no tiene ningún valor y en el depurador me sale ese mensaje de 'Not enough actual parameters'. Saludos!
__________________
"Patientia et constantia taelecum" |
#6
|
||||
|
||||
No sé si será o no será, pero creo que está intentando llamar a la función y no comprobando el valor del puntero, y de ahí que diga que no tiene suficientes parámetros. Prueba con "if Assigned(@DLLFunc) then", a ver.
Personalmente no me gusta nada cómo maneja Delphi los punteros a función. Prefiero con mucho cómo lo hace Free Pascal, que es mucho más coherente (al estilo "C"). |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
enlazar dos programas delphi | cadina | Varios | 7 | 01-10-2008 17:11:47 |
enlazar dos programas delphi | cadina | OOP | 2 | 08-08-2007 20:37:53 |
Enlazar MySql a Delphi | osierra | SQL | 2 | 19-08-2004 11:08:16 |
enlazar una bd a delphi | jas010 | Conexión con bases de datos | 4 | 15-08-2004 08:24:00 |
Enlazar Delphi cln BD Oracle 9¡ | DANFIR | Conexión con bases de datos | 1 | 26-01-2004 17:38:40 |
|