SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: Linspire en Lunes 15 de Mayo de 2006, 23:22

Título: Crear .dll
Publicado por: Linspire en Lunes 15 de Mayo de 2006, 23:22
Hola a todos, resulta que estuve buscando y no pude hallar gran cosa sobre como crear una .DLL en C++Builder 5, así que me gustaría que me orientaran hacía alguna o algunas fuentes de información al respecto. Les agradezco de antemano :comp:

Y como nota adicional, tengo que ser sometido a una nueva cirugía pero mis recursos casi se agotaron con la cirugía de hace casi un mes, alguien podría darme una idea para conseguir $1000.00 (USD 100.00 aprox,  100.00 euros aproximadamente) y completar el precio de la intervención?. Les agradeceré infinitamente sus propuestas ya que es de vital importancia para mi salud presente y futura.

Gracias. :hola:  y Saludos.
Título: Re: Crear .dll
Publicado por: mpching en Martes 16 de Mayo de 2006, 00:04
hola este codigo lo utilizo en cbuilder 6 para dll dinamicas ojala te sirva
//Se crea un tipo de funcion-variable que provee acceso al manejador de win
        typedef void __declspec(dllimport)showpostura1(HWND);
        showpostura1 *postura1;

        //Si es null carga carga el manejador de win para dicho archivo
        if(!Dllpostura)
            Dllpostura=LoadLibrary("postura.dll");
        //al tipo creado asigna la direccion de la funcion de la dll a traves de otra variable detipo que crea
        if(Dllpostura){
            postura1=(showpostura1 *)GetProcAddress(Dllpostura,"_showpostura");
            //Si abrio postura correctamente asigna el manejador de windows
            if (postura1)
                postura1(Handle);
            else{
                ShowMessage(SysErrorMessage(GetLastError()));
                FreeLibrary(Dllpostura);
            }
        }
        else{
            ShowMessage(SysErrorMessage(GetLastError()));
            ShowMessage("no se puede cargar la dll");
        }

Nota: cada forma existente dentro de una dll debe ser creada por una funcion diferente y deben ser de estilo fsMDICHild
Título: Re: Crear .dll
Publicado por: Linspire en Martes 16 de Mayo de 2006, 21:37
Pues bien mi amigo, creo que entendiste mal, lo que yo quiero es Crear una DLL, no llamarla, que creo que es lo que tu me estás indicando.

Saludos. :comp:
Título: Re: Crear .dll
Publicado por: SkaJaf en Domingo 28 de Mayo de 2006, 21:28
El código en el lenguaje C++ de una biblioteca de enlace dinámico es:

#define EXP __declspec(dllexport)
#include <stdlib.h>
#include <stdio.h>
#include <memory.h>
#include <windows.h>
BOOL APIENTRY DllMain (HINSTANCE hInst,
DWORD reason,
LPVOID reserved /* No se usa */
)
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
//Código que se ejecuta cuando se carga la DLL
break;
case DLL_PROCESS_DETACH:
break;
//Código que se ejecuta cuando se libera la DLL
case DLL_THREAD_ATTACH:
break;
//Código que se ejecuta cuando un hilo de proceso se crea
//en el tiempo en el que la biblioteca esta activa
case DLL_THREAD_DETACH:
break;
//Código que se ejecuta cuando un hilo de proceso termina
//de forma correcta
}
return TRUE;
}
////////////////////////////////
// FUNCIONES DE USUARIO///
void EXP Funcion1() // EXP sustituye a __declspec(dllexport)
{
/*sentencias*/
};
void __declspec(dllexport) Funcion2()
{
/*sentencias*/
};
////////////////////////////////
/***********************************

Espero q te sea de ayuda, esta es la plantilla básica para crear una DLL.

Un saludo
Título: Re: Crear .dll
Publicado por: Linspire en Martes 30 de Mayo de 2006, 00:46
Gracias my friend, lo pondré a prueba cuando tenga más tiempo libre porque estoy en fin de semestre y tengo mucho trabajo, ya comentaré los resultados.


Gracias nuevamente.

Saludos.  :comp:  :hola:  :whistling: