Если я переключу свой проект с использования MFC в общей библиотеке DLL на использование MFC в статической библиотеке, следующий код не будет компилироваться:
class Test : public CObject
{
public:
//DECLARE_DYNCREATE(Test); // If I uncomment this line, it works
};
class Test2 : public Test
{
public:
DECLARE_DYNCREATE(Test2);
};
IMPLEMENT_DYNCREATE(Test2, Test); // <-- error C2039: 'classTest' : is not a member of 'Test'
Хотя, если я раскомментирую DECLARE_DYNCREATE (Test), это сработает. Я не могу найти в документах ничего, что базовый класс должен использовать DECLARE_DYNCREATE или что между статическими или общими ссылками есть разница.
Проблема в том, что у меня есть какой-то сторонний код, который не использует макросы DYNCREATE. Кто-нибудь знает, почему требования различаются при статическом связывании, и есть ли способ обойти это без объявления базового класса с помощью DECLARE_DYNCREATE?
Спасибо.