Estoy intentando exportar una variable global desde una DLL.Exportación de variables globales desde DLL
foo.h
class Foo
{
public:
Foo()
{}
};
#ifdef PROJECT_EXPORTS
#define API __declspec(dllexport)
#else
#define API __declspec(dllimport)
#endif
API const Foo foo;
foo.cpp
#include "Foo.h"
const Foo foo;
Cuando puedo compilar el código anterior, Visual Studio se queja:
foo.cpp (3): error C2370: ' foo ': redefinición; diferentes clases de almacenamiento 1> foo.h (14): véase la declaración de 'foo'
Si utilizo:
external const Foo foo;
en foo.h el compilador es feliz, pero entonces el archivo DLL no exporta la símbolo. Logré exportar funciones con problemas, pero las variables no parecen funcionar de la misma manera ... ¿Alguna idea?
¿Por qué? Por favor, justifique su downvote. – Gili