 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
dobermannmx Master


Registrado: 30 Ago 2006Mensajes: 191Ubicación: Zapopan, Jal. - México
|
Publicado: Mie 11 Feb, 2009 7:59 pm Asunto: Una DLL Especial |
|
|
Hola Foro, tengo la siguiente situación que no encuentro cómo resolverla:
1º Neceisto crear una DLL que hace uso de una Clase que a su ves depende de otras 3 clases.
2º Cada clase tiene su propio archivo CPP y H, y obviamente hay dependencias entre clases, pues una clase contiene a otra que a su vez contiene las otras 2.
3º Cuando genero la DLL y el LIB, al momento de que los ligo a una aplicación de prueba, me pide las declaraciones en los archivos H de todas las clases involucradas.
4º El problema es que la DLL será comercial y solo quisiera la libreria contenga la clase final que contiene las demás, y un archivo H. En pocas palabras requiero encapsular el resto de las clases y su código, para solo exportar una sola con un solo archivo h.
5º Ya he intentado de varias formas pero al momento de ligado no me salvo de que me pida todas las declaraciones del resto de las clases definidas en sus archivos de cabecera H.
Si alguien ha resuelto o hecho algo parecido, se lo agradecería infinitamente me de una mano.
Saludos _________________ ISC
Dobermannmx |
|
| Volver arriba |
|
 |
escafandra Master

Registrado: 29 Nov 2007Mensajes: 625Ubicación: Madrid - España
|
Publicado: Jue 12 Feb, 2009 1:36 am Asunto: |
|
|
Bueno, creo que si tu dll contiene la clase que a su vez contiene las otras clases puedes conseguirlo.
Yo lo veo de la siguiente manera:
1.- Tu clase principal, en la dll, tiene su clase.h que el usuario usará. En el no aparecerán #includes de las clases secundarias.
2.- Las clases secundarias se crean para uso exclusivo de la principal y se definen en archivos.h separados e incluidos en el Clase_principal.cpp. Esto implica que no son miembros de la principal pero si podemos tener variables globales en la dll a esas clases. Lo que en la práctica las encapsula en la dll. O bien las clases pueden ser miembros puntero void definidos en Principal.h que serán objeto de un casting en el cpp, ya que este archivo es el que conoce la definición de las secundarias (los include están aquí y no en Principal.h)
3.- Todas las clases, principal y secundaria están compiladas y enlazadas en la dll.
4.- No se hará ningún uso fuera de la dll, y por tanto, de la clase principal, de esas clases secundarias.
Con este sistema puedes conseguir tu propósito.
Saludos. |
|
| Volver arriba |
|
 |
dobermannmx Master


Registrado: 30 Ago 2006Mensajes: 191Ubicación: Zapopan, Jal. - México
|
Publicado: Jue 12 Feb, 2009 2:35 am Asunto: |
|
|
Gracias Escafandra, probaré tu esquema que suena bastante lógico y viable, ya que por estar tan metido en el resto ya no me daba la cabeza para pensar en cómo resolverlo.
Salu2 _________________ ISC
Dobermannmx |
|
| Volver arriba |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|