我复制了一个dlg Box类的现有头文件(使用dlg类向导/ mfc向导创建).在我将cpp文件添加到项目之前,一切似乎都没问题.现在我得到一些mfc魔术方法的奇怪链接错误:
error LNK2001: unresolved external
symbol “public: virtual struct
CRuntimeClass * __thiscall
DlgGapWindow::GetRuntimeClass(void)const
”
(?GetRuntimeClass@DlgGapWindow@@UBEPAUCRuntimeClass@@XZ)error LNK2001: unresolved external
symbol “protected: virtual struct
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() };
我似乎没有看到任何类似于我建模的东西.我没有发现谷歌或其他搜索有用的东西,以表明为什么这些神奇的mfc缺失.我的其他类没有明确定义它们,也没有错误.
RC文件确实有相应的dlg定义.
编辑:
感谢DECLARE_DYNAMIC帮助 – 现在我没有GetRuntimClass()错误 – 只是GetMessagemap()错误.
解决方法
您使用了DECLARE_DYNAMIC但忘记了
IMPLEMENT_DYNAMIC.
原文地址:https://www.jb51.cc/c/120198.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。