Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Dll ´s

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Dll ´s Responder citando

Hola a todos.
Necesitaba un ejemplo sencillo de como se crea una dll con C++ Builder 1.0
De igual forma, un ejemplo de como llamar alguna de las funciones que hay en esa dll, desde un programa realizado con el mismo compilador.

Muchas gracias Wink

Volver arriba
Mensaje    Asunto: Dll ´s Responder citando

Hola Angel:

### Creamos la dll ###

1. Vamos al menú File > New y pinchamos sobre el icono DLL para crear el 'esqueleto' de la dll, salvamos el proyecto para este ejemplo con el nombre 'dll.mak'

2. Creamos un fichero de cabecera con el nombre 'dll.h' para esa dll, que contendra lo siguiente:

code:

//---------------------------------------------------------------------------
#ifndef dllH
#define dllH
//---------------------------------------------------------------------------
#ifdef _DLL_
#define PUBLIC __declspec(dllexport)
#else
#define PUBLIC __declspec(dllimport)
#endif
//---------------------------------------------------------------------------
PUBLIC int Suma(int a, int b);
//---------------------------------------------------------------------------
#endif


y luego el fichero 'dll.cpp':
code:

//---------------------------------------------------------------------------
#include <vcl\vcl.h> // en caso de no usar la VCL lo quitamos
#pragma hdrstop
#define _DLL_
#include "dll.h"
//---------------------------------------------------------------------------
USERES("dll.res");
//---------------------------------------------------------------------------
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)
{
return 1;
}
//---------------------------------------------------------------------------
PUBLIC int Suma(int a, int b)
{
return(a+b);
}
//---------------------------------------------------------------------------

3. Compilamos el proyecto de la dll y una vez nos ha creado el .dll, tecleamos lo siguiente desde la linea de comandos:

IMPLIB dll.lib dll.dll

esto nos creara el fichero .lib que nos servirá para enlazar nuestro proyecto con la dll (también podríamos enlazarlo sin el .lib dinámicamente, en este caso lo haremos estáticamente al ser todo con el mismo compilador facilita y simplifica mucho el trabajo)


### Creamos el proyecto donde usamos la dll ###

1. Creamos un nuevo proyecto, y desde el menú Project > Add to project... añadimos el 'dll.lib'.

2. Escribimos el código. Asi es como queda el fichero .cpp del proyecto:

code:

//---------------------------------------------------------------------------
// progmain.cpp -- o sea, la unit1.cpp o como la queramos llamar
#include <vcl\vcl.h>
#pragma hdrstop
#include "progmain.h"
#include "dll.h" // incluimos la cabecera de la dll
//---------------------------------------------------------------------------
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
ShowMessage( Suma(2,3) ); // probamos la función
}
//---------------------------------------------------------------------------

[b]3. Compilar y ejecutar. funciona ?

Todo esto es valido en cualquier versión de builder, aunque a diferencia de la versión 1 las demás no necesitan que creemos el fichero .lib, lo harán automáticamente.

Saludos.

Volver arriba
Mensaje    Asunto: Dll ´s Responder citando

Gracias. Funciona perfectamente. Wink
Volver arriba
Mensaje    Asunto: Dll ´s Responder citando

nasssss¡¡

oye, eso es precioso, y se ve que dominais, pero no se que significa cada paso que dais, me pierdo al no saber para que haceis lo de los archivos(no me refiero al codigo, si no al "haz esto, copia aqui,etc...")

me hareis un gran favor si lo posteais

gracias

Volver arriba
Mensaje    Asunto: Responder citando

Hola Leo, si no te es mucha molestia, nos podrias explicar con algun otro pequeño ejemplo, como utilizaria la dll pero en este caso, en forma dinamica ?
O sea, sin necesidad de compilar el proyecto incluyendo el dll.h ni el .lib
Saludos!!
_________________
Il Lupo
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.