Я скопировал существующий заголовок для класса dlg box (созданного с помощью мастера классов dlg / mfc wizard).Казалось, что все прошло нормально, пока я не добавил файл cpp в проект.Теперь я получаю странные ошибки ссылок для некоторых магических методов MFC:
ошибка LNK2001: неразрешенный внешний символ "public: virtual struct CRuntimeClass * __thiscall DlgGapWindow :: GetRuntimeClass (void) const" (? GetRuntimeClass @ DlgGapWindow @@ UBEPAUCRuntimeClass @@ XZ)
ошибка LNK2001: неразрешенный внешний символ "защищен: виртуальная структура AFX_MSGMAP const * __thiscall DlgGapWindow :: GetMessageMap (void) const" (? GetMessageMap @ DlgGapWMU @F_ @ @ X @ MB_X_EP_F @ @X_EP_F @ @X_EP_MB*
С чего бы это?
Вот соответствующий код в заголовке
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 или других поисков, чтобы указать, почему эти магические вещи отсутствуют.Мои другие классы не определяют их явно, и в них нет ошибок.
RC-файл имеет соответствующее определение dlg.
EDIT:
Спасибо за помощь DECLARE_DYNAMIC - теперь у меня нет ошибки GetRuntimClass () - только GetMessagemap() ошибка.