exportar clase con template.
Publicado por fernando.gomez (1603 intervenciones) el 23/08/2004 19:25:40
Saludos. Tengo un código similar al abajo presentado:
class __declspec(dllexport) ISimpleTable
{
public:
// etcetera, todas son funciones virtualmente puras
};
y en una clase, tengo lo siguiente:
using namespace std;
class __declspec(dllexport) SimpleTableCollection
{
private:
list<ISimpleTable*> m_lstTables;
// etcétera
};
Como se podrá notar, mi programa es una librería de enlace dinámico, y estoy exportando esta clase e interfaz. Sin embargo, al compilar, en la declaración del miembro m_lstTables de la clase, me aparece el siguiente mensaje de advertencia:
warning C4251: 'm_lstTables' : class 'std::list<class ISimpleTable *,class std::allocator<ISimpleTable *> >' needs to have dll-interface to be used by clients of class 'SimpleTableCollection'.
Investigué en MSDN, y la ayuda me dice que "The specified base class was not declared with the __declspec(dllexport) keyword", la base clase especificada no fué declarada con la palabra clave __declspec(dllexport).
Sin embargo, no entiendo, ya que no estoy derivando ninguna clase... Espero alguien me pueda ayudar. Gracias de antemano.
class __declspec(dllexport) ISimpleTable
{
public:
// etcetera, todas son funciones virtualmente puras
};
y en una clase, tengo lo siguiente:
using namespace std;
class __declspec(dllexport) SimpleTableCollection
{
private:
list<ISimpleTable*> m_lstTables;
// etcétera
};
Como se podrá notar, mi programa es una librería de enlace dinámico, y estoy exportando esta clase e interfaz. Sin embargo, al compilar, en la declaración del miembro m_lstTables de la clase, me aparece el siguiente mensaje de advertencia:
warning C4251: 'm_lstTables' : class 'std::list<class ISimpleTable *,class std::allocator<ISimpleTable *> >' needs to have dll-interface to be used by clients of class 'SimpleTableCollection'.
Investigué en MSDN, y la ayuda me dice que "The specified base class was not declared with the __declspec(dllexport) keyword", la base clase especificada no fué declarada con la palabra clave __declspec(dllexport).
Sin embargo, no entiendo, ya que no estoy derivando ninguna clase... Espero alguien me pueda ayudar. Gracias de antemano.
Valora esta pregunta


0