Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Exportacion De Clases A Dll

Iniciado por TheAzazel, 17 de Julio de 2005, 11:22:46 PM

« anterior - próximo »

TheAzazel

 Buenas!

resulta que tengo exportada un clase a DLL:

class __declspec(dllexport) MyClass

y lo que logra es que todos los miembros, los exporte tambien pero.... quiero que algunos miembros(los privados fundamentalmente) no se exporten.

Existe algun modo de evitarlo???

graciassss


TheAzazel

 Je, pues parece q lo he visto ahora mismo...es q estoy empanado y no lei bien esta frase:

CitarNote that explicit use of the dllimport and dllexport attributes on members of an exportable class is prohibited.

de:

http://msdn.microsoft.com/library/default....t_in_c.2b2b.asp

vamos, q lo que no puedo es...si una clase esta exportada entera...decirle lo que no esta exportado... pero si puedo.. no exportar la clase y exportar selectivamente los miembros que me interesen... estos de microsoft podrian haber permitido todo... porque para evitar exportar un miembro de por ejemplo, 20...tendras que declarar a 19 como exportables y el q tu no quieres..no decirle nada... en fins...

duda resuelta :)

gdl

 Mmmmm... ¿usando un patrón de diseño interfaz/implementación y exportando el interfaz?

Por el link supongo que estás trabajando con Visual C.

class __declspec(dllexport) MyClass
{
public:
.... miembros a exportar ...

class MyClassImpl * m_pImpl;
}


No defino la clase MyClassImpl en este fichero por lo que queda opaca y no se puede usar aunque se exporte. Por otro lado, internamente y sin exportar...

class MyClassImpl
{
public:
... miembros a no exportar ...
}


TheAzazel

 Uhmm.. me has dado una idea, voy a ver cuan costoso seria en tiempo de aplicarlo.
Hasta eso, se me habia ocurrido sacar algunas funciones de la clase y dejaras "escondidas" junto con la implementacion de la clase... funcionar funciona pero no me gusta pq ya no esta todo bajo una clase....
gracias






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.