在编译时出现无法解析的外部符号Cxx::AssertValid(void)const的解决方法

我们在编译有MFC扩展支持的派生类时,有时候会出现

 error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall CAdUiDockControlBar::AssertValid(void)const " (?AssertValid@CAdUiDockControlBar@@UBEXXZ)

的错误,而在Release版本时则没有此错误,

这个错误主要是由这个断言函数AssertValid引起的,解决方法有两个

1: 应该是CAdUiDockControlBar这个类中有一个AssertValid函数的生命,但是没有在.cpp文件中定义或者重载,那么在你的工程中找到CAdUiDockControlBar的派生类,然后在这个派生类中写出AssertValid函数的定义就可以了。

2: 修改stdafx.h头文件

//-----------------------------------------------------------------------------
#ifdef _DEBUG_WAS_DEFINED
#define _DEBUG
#undef _DEBUG_WAS_DEFINED
#endif

放在

#include "arxHeaders.h"

后面即可

你可能感兴趣的:(Arx)