MFC——error LNK2005: "protected: static struct AFX_MSGMAP

来源:互联网 发布:布鲁斯威利斯 知乎 编辑:程序博客网 时间:2024/06/07 05:49

好久没弄VC程序了,今天弄了下,还会用公司给的窗口重绘作为基类来实现,竟然报了这个错误。

找了一下是这里:

有个窗口重绘类是基类:

class CBaseDlg : public CDialog

新建一个对话框类

class CTestDlg: public CBaseDlg 

在消息映射的地方:

BEGIN_MESSAGE_MAP(CBaseDlg , CDialog)
//{{AFX_MSG_MAP(CTestDlgDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_SIZE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

报错的就是红色标记的,因为在基类有:

BEGIN_MESSAGE_MAP(CSkinDlg, CDialog)
ON_WM_SIZE()
ON_WM_PAINT()
END_MESSAGE_MAP()

所以重复定义了,应该是:

BEGIN_MESSAGE_MAP(CTestDlg,CBaseDlg )


这是个小问题,不过出错了,不容易找,最主要的是要弄清楚原理前面是派生类,后面是基类。


转载请注明原创链接:http://blog.csdn.net/wujunokay/article/details/12454469