Экспорт и наследование DLL в C ++

Я пытаюсь экспортировать класс и его базовый класс из библиотеки DLL следующим образом:

#ifdef MY_EXPORTS
    #define DECLSPEC_TEST __declspec(dllexport)
#else
    #define DECLSPEC_TEST __declspec(dllimport)
#endif


class DECLSPEC_TEST BaseClass
{
  // stuff.
};

class DECLSPEC_TEST DerivedClass : public BaseClass
{
  // This class only has a constructor which initializes the class differently.

};

Но я пытаюсь использовать этот класс в другой DLL, я все время получаю сообщение об ошибке:

error LNK2019: unresolved external symbol 
"__declspec(dllimport) public: __thiscall DerivedClass::DerivedClass(void)"
 (__imp_??0DerivedClass@@QAE@XZ) referenced in function 
"public: __thiscall SomeOtherClass::SomeOtherClass(void)" (??0SomeOtherClass@@QAE@XZ)  

I также посмотрел на мою экспортируемую DLL с помощью PE Explorer, и я не вижу производный класс в списке экспорта.

Когда я пытаюсь использовать базовый класс в другой своей DLL, он работает нормально.

Что я делаю не так?

5
задан JETM 28 December 2017 в 00:48
поделиться