Ошибки ссылки на класс dlg MFC для MyClass :: GetMessageMap () и MyClass :: GetRuntimeClass (MSVC 2008)

Я скопировал существующий заголовок для класса коробки dlg (созданный с помощью мастера dlg class wizard / mfc wizard). Казалось, все идет нормально, пока я не добавлю в проект файл cpp. Теперь я получаю нечетные ошибки ссылки для некоторых магических методов mfc:

ошибка LNK2001: неразрешенный внешний символ "public: виртуальная структура" CRuntimeClass * __thiscall DlgGapWindow :: GetRuntimeClass (void) const " ( ? GetRuntimeClass @ DlgGapWindow @@ UBEPAUCRuntimeClass @ @XZ)

ошибка LNK2001: неразрешенный внешний символ "protected: виртуальная структура" AFX_MSGMAP const * __thiscall DlgGapWindow :: GetMessageMap (void) const " ( ? GetMessageMap @ DlgGapWindow @@ MBEPBUAFX_MSGMAP @@XZ)

Почему это должно быть?

Вот соответствующий код в заголовке

class DlgGapWindow : public CDialog
{
    DECLARE_DYNAMIC(DlgGapWindow)

public:

    DlgGapWindow(CWnd* pParent = NULL);

    virtual ~DlgGapWindow();
    virtual BOOL PreTranslateMessage(MSG* pMsg);


protected:  
    virtual BOOL OnInitDialog();
    enum { IDD = IDD_DIALOG_GAP_VIEW };// Dialog Data

    GapViewer m_chart;  

protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

    afx_msg void OnSize(UINT nType, int cx, int cy); 
    afx_msg void OnSizing(UINT fwSide, LPRECT pRect) ;
    afx_msg void OnTimer(ONTIMER_TYPE nIDEvent);
    afx_msg void OnDestroy();
    afx_msg void OnClose();
    afx_msg void OnActivate(UINT,CWnd *,BOOL);
    afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
    afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);

    DECLARE_MESSAGE_MAP()

};

Я не вижу ничего из класса, который я смоделировал после этого, кажется, отсутствует. Я не нашел ничего полезного в google или других поисках, чтобы указать, почему эти волшебные вещи mfc отсутствуют. Другие мои классы не определяют их явно, и в них нет ошибок.

RC-файл имеет соответствующее определение dlg.

EDIT:

Спасибо за помощь DECLARE_DYNAMIC - теперь у меня нет ошибки GetRuntimClass () - только ошибка GetMessagemap ().

7
задан Tim 1 March 2011 в 03:26
поделиться