FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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" |
#2
|
||||
|
||||
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"). |
#3
|
|||
|
|||
Gracias por contestar Nuño... pero no es por eso.
Como no entendía muy bien que es lo que se estaba haciendo ya había probado esa posible solución, pero sigue ocurriendo lo mismo. Gracias de todas formas!
__________________
"Patientia et constantia taelecum" |
#4
|
|||
|
|||
Siguiendo con la investigación he visto alguna página donde se dice que no se puede acceder a una clase exportada por una DLL.
Si esto es así por ahí puede venir el fallo ya que la función pertenece a una clase según veo en el código fuente. ¿Alguien me puede aportar datos sobre esto? Saludos!
__________________
"Patientia et constantia taelecum" |
#5
|
||||
|
||||
Amigo, eso cambia las cosas. Evidentemente no puedes exportar un método de una clase si no conoces la definición de la clase. Y aun conociéndola sería difícil, ya que deberías reproducir dicha clase con exactitud. Lo resalto porque esa exactitud ha de ser a nivel de octeto (byte), lo cual es muy difícil conseguir con Delphi.
Para hacerlo es necesario crear una función o procedimiento de molde. Un ejemplo en C++ (compilador desconocido): Código:
class TMiClase { public: void Metodo (void) { ; } }; extern "C" TMiClase* CreaObjeto (void) __dlldecl { return new TMiclase (); } extern "C" void MoldeAMetodo (TMiClase *Objeto) __dlldecl { Objeto->Metodo (); } // Etcétera...
|
#6
|
|||
|
|||
Y no puede ser que desde una aplicación Win32 nativa (como cualquier desarrollada en Delphi) no se pueda acceder a una DLL escrita en .NET, que ni siquiera está compilada a código máquina? Recordar que la citada DLL lo único que debe tener es bytecode CLR...
|
|
|
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 |
|