在创建MFC程序时候,为了减小程序大小,有时候会指定“不使用高级MFC控件”,这样生成的程序会小很多,但是工程创建完成之后,突然又想使用通用控件,比如ColorButton时,在链接时会出现以下链接错误
uafxcwd.lib(afxctrlcontainer2.obj) : error LNK2005: "void __cdecl AfxRegisterMFCCtrlClasses(void)" (?AfxRegisterMFCCtrlClasses@@YAXXZ) 已经在 afxnmcdd.lib(afxctrlcontainer2.obj) 中定义
1>uafxcwd.lib(afxctrlcontainer2.obj) : error LNK2005: "protected: void __thiscall CMFCControlContainer::PreUnsubclassControl(class CWnd *)" (?PreUnsubclassControl@CMFCControlContainer@@IAEXPAVCWnd@@@Z) 已经在 afxnmcdd.lib(afxctrlcontainer2.obj) 中定义
1>uafxcwd.lib(afxctrlcontainer2.obj) : error LNK2005: "public: int __thiscall CMFCControlContainer::SubclassDlgControls(void)" (?SubclassDlgControls@CMFCControlContainer@@QAEHXZ) 已经在 afxnmcdd.lib(afxctrlcontainer2.obj) 中定义
解决方法很简单,打开stdafx.h文件,找到 #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS
将这句注释掉即可。。。。
本文介绍了解决在MFC项目中因禁用高级控件而导致的链接错误问题。通过简单修改stdafx.h文件中的预处理器指令,可以轻松启用通用控件如ColorButton,并消除重复定义的错误。
1924

被折叠的 条评论
为什么被折叠?



