Я пытаюсь экспортировать класс и его базовый класс из библиотеки 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, он работает нормально.
Что я делаю не так?