Я пытаюсь экспортировать глобальную переменную из 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;
Когда я компилирую вышеуказанный код, Visual Studio жалуется:
foo.cpp(3): ошибка C2370: 'foo': redefinition; различный класс хранения 1 > foo.h(14): см. Объявление 'foo'
Если я использую:
external const Foo foo;
в Foo.h компилятор счастлив, но тогда DLL не экспортирует символ. Мне удалось экспортировать функции с проблемами, но переменные, похоже, не работают одинаково... Любые идеи?