Экспорт глобальных переменных из DLL

Я пытаюсь экспортировать глобальную переменную из 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»: переопределение; другой класс хранения 1> foo.h (14): см. объявление 'foo'

Если я использую:

external const Foo foo;

в Foo.h компилятор доволен, но тогда DLL не экспортирует символ. Мне удалось экспортировать функции с проблемами, но переменные, похоже, не работают одинаково ... Есть идеи?

Ответы на вопрос(1)

Ваш ответ на вопрос