SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: wallsjust en Lunes 26 de Julio de 2004, 21:07

Título: Uso De Dll
Publicado por: wallsjust en Lunes 26 de Julio de 2004, 21:07
Saludos: Necesito utilizar ciertas funciones que se encuentran en una dll alguien sabe como las puedo invocar en un programa hecho en C
Título: Re: Uso De Dll
Publicado por: Amilius en Lunes 26 de Julio de 2004, 23:34
La facilidad de hacer eso depende también del compilador, en algunos existe la opción de elegir el archivo dll y te genera un .h para utilizarlo, con todo el código extra necesario y listo para usar!.
Título: Re: Uso De Dll
Publicado por: © Jonathan © en Martes 27 de Julio de 2004, 01:12
En Borland C++ 3.x puedes crear un .lib de la dll que necesitas y enlazarla estaticamente a tu proyecto... para crear el .lib debes utilizar bcc32, te buscare info para maniana, no quiero meter la pata ;) ... Saludos :hola:
Título: Re: Uso De Dll
Publicado por: wallsjust en Martes 27 de Julio de 2004, 14:31
Gracias por la ayuda
Título: Re: Uso De Dll
Publicado por: Geo en Miércoles 28 de Julio de 2004, 01:40
Esto es para Dev-C++:

Suponiendo que tienes una DLL midll.dll que contiena la función void hola();. Para llamar dicha función desde un programa en C, haces lo siguiente:

Código: Text
  1.  
  2. // Definimos la macro DLLIMPORT para no tener que escribir lo de __decl...
  3. // (está muy largo :P).
  4. #define DLLIMPORT __declspec (dllimport)
  5.  
  6. // Declaramos la función a importar de la dll.
  7. DLLIMPORT hola();
  8.  
  9. int main() {
  10.   // Llamamos la función como cualquier otra.
  11.   hola();
  12. }
  13.  
  14.  

Para que funcione, debes agregar a los parámetros del enlazador (linker) el archivo DLL. En Dev-C++ vas a Project->Project Options->Parameters y en la sección Linker agregas el archivo midll.dll, Puedes hacerlo usando el botón debajo de la sección Linker que dice Add Library or Object.

Recuerda que Dev-C++ usa el compilador MinGW, quizá sea un poco diferente para algún otro, pero igual te puede servir.

Saludos,
José Jorge (Geo).