lunes, 18 de julio de 2011

Curso de programación: Capítulo 4. Como crear una DLL


Hola a todos...

Como muchos ya sabreis este curso de programación es anarquico y responde a necesidades concretas y no a un esquema bien formado. Ayer hablabamos de consejos en la escritura de código para los novatos, hoy hablaremos de la creación de DLL para los más avanzados. Quien tenga más temas para ir comentado que lo diga y le buscaremos solución.

Que es una DLL?? Una DLL no es más que una libreria cerrada que permite su uso sin necesidad de recompilar. Esto, cuando un proyecto empieza a crecer es vital de necesidad.

Como se crea una DLL?? Hay varias maneras, yo es explicaré la que conozco mejor y la que sinceramente creo que es más sencilla (todo esto para VisualStudio, en el resto de IDE no es muy diferente):

1. Cread un proyecto nuevo que sea Win32/Aplicación de consola Win32
2. Marcad la opción "Biblioteca de vínculos dinámicos" y "proyecto vacio"
3. Incluid todos los ficheros que van a formar parte de vuestra DLL (en mi caso, todos los ficheros del game engine)
4. Todas las funciones que vayais a llamar desde fuera de la DLL tendreis que marcarlas para que el compilador sepa que van a ser funciones externas(en mi caso las funciones del Core.h)
        a. Incluid al principio del fichero #define DLLEXPORT __declspec(dllexport)
        b. Poned (tanto en el .h como en el .cpp) delante de todas las funciones que vais ha hacer externas la palabra DLLEXPORT (ej. DLLEXPORT void Run();)
5. Compilad. Si todo va bien os ha tenido que generar un archivo con extensión .dll y otro de tipo Object File Library (dentro de la carpeta Debug o Release dependiendo de como hayais compilado)

Como se usa una DLL??? Facil, antes que nada cread un proyecto nuevo que será el que usará  la DLL.

1. En la raiz del proyecto copiad el archivo con extensión Object File Library
2. En el main.cpp del proyecto incluid esta linea: #pragma comment(lib, "LPEngineDLL.lib")  (yo tengo LPEngine.dll vosotros tendreis la DLL que tengais)
3. Incluid al proyecto los .h que os hagan falta para compilar (en mi caso el Core.h por que es donde están las cabeceras de las funciones y el State.h que es el que contiene la definición de la clase state de la cual heredar para hacer juegos.)
4. Incluid los ficheros del proyecto. (los que no tengan nada que ver con la libreria)
5. Compilad.
6. Antes de ejecutar, copiar el archivo .dll dentro de la carpeta donde está el ejecutable  , así como los recursos y los demás dll que os hagan falta para vuestro caso concreto.
7. Dadle a ejecutar :D.

Si os descargais el archivo de ejemplo de DLL bien de la zona de descargas o bien de aqui , vereis que contiene tanto el proyecto de creación de DLL como el proyecto de ejemplo de uso y la carpeta del ejecutable donde se observa que todo nuestro game engine está ubicado dentro de una DLL.

Espero que os lo hayais pasado bien y os haya sido util. Si teneis dudas o propuestas no tengaís reparos en hacermelas llegar.

Nos vemos
LordPakusBlog

4 comentarios :

  1. Hola, Amigo espero me puedas ayudar con esto, necesito crear una dll que desactive el llamado x-Trap Para el Famoso juego "OPERATION7" Te agradezco la ayuda saludos, -GRACIAS-

    ResponderEliminar
    Respuestas
    1. Sinceramente, ni idea.

      Supongo que si buscas por google encontrarás algo ya hecho o alguna pista de como hacerlo.

      No obstante te aviso que lo que quieres hacer creo que es ilegal, así que sintiendolo mucho ni quiero ni puedo ayudarte en esta tarea.

      Hay otros foros donde te podrán ayudar mejor que aquí.

      Si tienes cualquier otra duda, propuesta o idea ( a ser posible legal :) ) aquí estoy para intentar ayudarte.

      Eliminar
  2. amigo la verdad me intereza mucho el curso pero seria mejor si nos explicas con un video como crear la dll la bibliotecas las sintasis los adgoritmos y todo eso

    ResponderEliminar
    Respuestas
    1. Hola,, me alegra que te guste. No, no voy a hacer videos explicando nada , lo siento. El motivo principal es por que en la vida, los estudios y el trabajo nadie te dará un video para que aprendas a hacer a algo.. te darán libros y pdf's para que sepas que tienes que hacer, asi que el hábito de leer documentación , si quieres ganarte la vida como programador, deberíás irlo adquiriendo. Un saludo, nos vemos

      Eliminar

Entradas populares