Я пытаюсь экспортировать глобальную переменную из 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 делаетне экспортировать символ.Мне удалось экспортировать функции с проблемами, но переменные, похоже, не работают одинаково ... Есть идеи?