プロジェクトを共有 DLL での MFC の使用からスタティック ライブラリでの 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 で宣言せずにこれを回避する方法があるかどうかを知っている人はいますか?
ありがとう。