Resumen Creacion de una DLL en C

Hacer una DLL es muy sencillo, aunque desgraciadamente el proceso varia un poco segun la herramienta que utilices para programar en C.

Yo por ejemplo utilizo el Visual C++ 5.0 y en una ocasion me pase al Borland C y tuve unos cuantos problemas a la hora de crear una DLL compatible (compatible con otro programa hecho con VC)

Por ejemplo, en VC los pasos a seguir son estos:

1) Programas tu DLL en C como harias con cualquier programa.
    Tan solo hay dos pequeñas diferencias:
       - al tratarse de una DLL no existe una funcion main().
       - debes indicar que la llamada a la funcion siga la convencion stdcall.
         Por ejemplo, una funcion definida como "int myfunc()" quedaria de la siguiente manera: "int __stdcall myfunc()".
 2) Una DLL dispone de funciones que seran llamadas desde otros lenguajes.
      Necesitas indicar cuales son las que vas a exportar. Para ello debes crearte un fichero ".def" con cualquier editor de texto.
      Este fichero contendra las lineas siguientes:

         LIBRARY NombreDll
         EXPORT
            funcion1 @10
            funcion2 @20
            ..........
            funcionN @N*10

O sea, despues de LIBRARY indicas el nombre de la DLL. Si por ejemplo tu DLL
se va a llamar "pepito.dll" pondrias LIBRARY pepito.
Debajo de EXPORTS escribes el nombre de cada una de las funciones que vas a exportar (las que podran ser llamadas desde fuera). Lo del "@10" es para identificar la funcion con un numero. De hecho siempre es mas rapido llamar a una funcion de una DLL por su codigo o numerito que por su nombre, pues el nombre implica deducir el punto de entrada partiendo de una tabla Nombre-numero.... aunque el tiempo que se puede tardar en hacer esto es practicamente despreciable.
No importa que numeros pongas mientras que sean distintos. Yo suelo ponerlos de 10 en 10...

No recuerdo si el nombre del fichero def debe ser igual al de la DLL... en cualquier caso es lo logico, por tanto lo llamarias "pepito.def" (desde el entorno VC deberas agregarlo a mano al proyecto)

3) Pues ya esta creada la DLL. Ahora simplemente necesitas declararla en el VB, indicando que tal funcion pertenece a tu DLL. Si no indicas el path de la DLL en la sentencia DECLARE, el fichero pepito.dll" debera estar en el directorio system o system32 del Windows o en el mismo directorio que la aplicacion VB.

Todo esto te lo he contado para el Visual C
Con el Borland C es lo mismo, pero creo recordar que en vez de "__stdcall" se usaba otra palabra clave... es cuestion de investigar un poco.
Si tuvieses algun problema no dudes en comentarmelo.

NOTA: por supuesto, a la hora de crear la DLL, desde el VC elige la opcion de "Dinamic Link Library", sin soporte MFC ni nada de nada.

Suerte



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com