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

时间:2022-01-21 14:52:02

好久没弄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