como crear dll creacion de libreria dinamica en c/c++

 CREACION DE LIBRERIAS DINAMICAS (*.dll) EN C/C++


Buenas amigos aquí les dejo este pequeño video tutorial donde aprenderemos a crear o generar librerías *.dll en el lenguaje de programación c o c++ usando el IDE o entorno de desarrollo dev c++




Creación de la dll

  1. Primero que nada crearemos una carpeta de nombre utilidades en C:\Dev-Cpp\bin en la cual iremos guardando todos los archivos del proyecto. Abrimos el Dev-C++ y vamos a Archivo -> Nuevo -> Proyecto, seleccionamos DLL y el nombre del proyecto será utilidades tal como se muestra:



  2. Guardamos todos los ficheros en la carpeta creada anteriormente y dejamos los nombres por defecto para los ficheros, vemos que se han creado los ficheros: dllmain.cpp y dll.h como se muestra:



  3. Ahora cambiamos el código del fichero dll.h por el siguiente:

    /* dll.h */

    #ifndef _DLL_H_
    #define _DLL_H_

    #if BUILDING_DLL
    # define DLLIMPORT __declspec (dllexport)
    #else /* Not BUILDING_DLL */
    # define DLLIMPORT __declspec (dllimport)
    #endif /* Not BUILDING_DLL */



    #endif /* _DLL_H_ */

    Este es un código que por lo general hay que dejarlo así


  4. Ahora cambiamos el código del fichero dllmain.cpp por el siguiente:

    /* dllmain.cpp */

    #include "dll.h"
    #include <windows.h>

    extern "C" _declspec(dllexport)
    int suma(int a, int b)
    {
        return a + b;
    }

    int longitud(char *cadena)
    {
        int len = 0;
        for(int i=0; ; i++)
        {
            if(cadena[ i ] == '\0')
               break;
               
            len ++;
        }
        return len;
    }

/* dllmain.cpp */

#include "dll.h"
#include <windows.h>

extern "C" _declspec(dllexport)
int suma(int a, int b)
{
    return a + b;
}

int longitud(char *cadena)
{
    int len = 0;
    for(int i=0; ; i++)
    {
        if(cadena[ i ] == '\0')
           break;
           
        len ++;
    }
    return len;
}

extern "C" _declspec(dllexport)
int es_palindroma(char *cadena)
{
   int i;
   char invertida[50];

   /* Halla la cadena invertida */
   for(i=0; i < longitud(cadena); i++)
       invertida[ i ] = cadena[longitud(cadena)-i-1];

   /* Coloca caracter de fin de cadena */
   invertida[ i ] = '\0';

   /* Realiza la comparacion */
   if(!strcmp(cadena, invertida))
      return 1; /* es un palindromo */
         
   return 0;  /* no es un palindromo */
}


BOOL APIENTRY DllMain (HINSTANCE hInst     /* Library instance handle. */ ,
                       DWORD reason        /* Reason this function is being called. */ ,
                       LPVOID reserved     /* Not used. */ )
{
    switch (reason)
    {
      case DLL_PROCESS_ATTACH:
        break;

      case DLL_PROCESS_DETACH:
        break;

      case DLL_THREAD_ATTACH:
        break;

      case DLL_THREAD_DETACH:
        break;
    }

    /* Returns TRUE on success, FALSE on failure */
    return TRUE;
}




Como podemos mirar, las funciones suma y es_palindroma están precedidas por la siguiente línea de código:

 extern "C" _declspec(dllexport)

Mediante esta línea decimos que las funciones definidas a continuación serán públicas, es decir que pueden ser usadas por cualquier que tenga la dll resultante. La función longitud es privada, es decir que sólo puede ser usada al interior de la dll, se trata de una función de utilería.



  1. Bien, ahora vamos a compilar, para ello, simplemente presionamos CTRL+F9 y podemos ver el resultado de la compilación:



  2. Bien con esto ya hemos creado nuestra dll. Si vamos al Explorador de Windows a nuestra carpeta de trabajo, podemos ver que se han creado algunos ficheros, de todos estos, la dll es obviamente : utilidades.dll, los demás ficheros tienen el fuente de la dll. Si queremos distribuir nuestra dll sólo hace falta entregar este fichero y ningún otro más.







Contraseña: tutos-edgar

Cualquier duda, error, tipo de modulo o proyecto que desees, me lo puedes dejar saber en la caja de los comentarios o contactarme.


 



Gracias por visitar mi blog espero que te hay servido si quieres ver como abrir y ejecutar la dll click aquí.

Créditos a: tutosedgar

0 comentarios :

Gracias Por tu Comentario Te Respondere Pronto