![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
No lo he hecho nunca (que conste), pero en teoría no debe tener problemas.
Aquí hay expertos en C, a ver si nos dan su opinión. ¡O mejor! a ver si alguno nos crea una DLL con una funcioncilla sencilla (sumar(a,b:Integer), por ejemplo) e intentamos llamarla desde Delphi.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#2
|
|||
|
|||
|
Un ejemplo suma:
La función en la dll escrita en C: Código:
extern "C" __declspec(dllexport)
int WINAPI Suma (int a, int b)
{
return a + b;
}
Ahora el código Delphi:
Esto vale para variables enteras, float o similares. Pero no para cadenas, ya que hay que mandarlas como Pchar, que es el formato que usa C. Los arrays o estructuras de datos se pueden enviar como punteros. |
|
#3
|
||||
|
||||
|
Es la primera vez que pruebo a hacer una dll en C. Espero que este bien
El código de la primera dll (suma.c) es el siguiente: Código:
__declspec(dllexport) int __stdcall Suma(int a, int b)
{
return a+b;
}
Código:
g + + -c suma.c dllwrap --def suma.def suma.c -o suma.dll Código:
LIBRARY suma.dll
EXPORTS
Suma = Suma@8 @1
|
|
#4
|
||||
|
||||
|
Y funciona perfectamete, como era de esperar...
![]() ![]() ![]()
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#5
|
||||
|
||||
|
Creo recordar que con Delphi se podían enlazar directamente al ejecutable archivos obj de C. Vendría siendo muy similar al uso de la dll pero todo en el mismo ejecutable.
Aquí hay una referencia para delphi 5. Sin embargo parece que si tales obj utlizan otras dlls la cuestión se complica, o al menos eso parece, por lo que dice Rudy Velthuis acá. En fin, sólo quería comentarlo por si fuera una opción. // Saludos |
|
#6
|
|||
|
|||
|
Siento no haber podido responder antes. Muchas gracias por las sugerencias, aunque tengo problemas con ellas. Apoyandome en las explicaciones de seoane y basti he conseguido crear suma.dll, pero (gracias a mi inexperiencia con Delphi) no soy capaz de llamarla desde un pequeño programita. Os adjunto el .pas
El compilador me dice que Suma no está declarado, por lo que asumo que no está cogiendo la dll, ¿me equivoco? |
|
#7
|
||||
|
||||
|
Cita:
Por cierto, no entiendo para que usas esto: Basti te lo ponía como un ejemplo, pero no hace falta que lo incluyas en tu programa |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Integración de php y delphi | Will | PHP | 4 | 10-08-2006 23:13:48 |
| Integración Google earth | Luci | Internet | 5 | 21-11-2005 15:14:35 |
| Integración de datos | kalimero | Firebird e Interbase | 3 | 17-02-2005 22:03:38 |
| Integracion de una Aplicacion de Flash 5.0, a una forma en Delphi 6... | delphi_gama | Gráficos | 2 | 22-08-2003 00:41:17 |
| integracion de Hardware y sofware | beatrizmh | Conexión con bases de datos | 1 | 17-08-2003 09:25:28 |
|