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
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.aspvamos, 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 :)
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 ...
}
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