1、fatal error C1853: Release/*.pch is not a precompiled header file created with this compiler
双击错误提示定位至 #include "stdafx.h"处。
解决方法:Class View模式下,右键当前工程工程名,选择“Set as Active Project”,再选择“Build”菜单下的“Rebuild All”。重新编译即可。
2、error C2556: 'void __thiscall CUseMyMFCDllDlg::OnCommandShowDate (void)' : overloaded function differs only by return type from 'int __thiscall CUseMyMFCDllDlg::OnCommandShowDate(void)'
错误信息是说,这里的重载函数只有返回值不同,这在C++ 中是会报错的。
看到其中_thiscall前面的void 和 int 就能看出来。而实际上我并没进行函数重载,我在此处只是自己写了个命令响应的函数而已。
解决方法:两次仔细检查该函数的声明部分,后来发现我在头文件中添加命令映射函数的声明时少写了个void。
本该是:afx_msg void OnCommandShowDate(); 却写成了:afx_msg OnCommandShowDate(); 报错时就指向了该函数实现的代码部分。
其他参考资料
3、cannot find the definition (implementation) of this function
刚写的C++类,已写好函数声明。在Class View中双击函数名弹出上述错误。
解决方法:<道友的解决方法主要有以下几种>
<方法1> 删除工作目录下面的 *.opt、*.ncb、*.plg、*.aps文件,然后Rebuild All;参考自此处
<方法2> 在其相应的.cpp文件中任何一处改动一下(例如:敲几个空格),然后再恢复以前的状态即可; 参考自此处
<方法3> 打开该cpp文件,删除最上面随便一行的.h,然后编译会提示错误,再把.h加上; 参考自此处13#
我的解决方法:(求表鄙视),因为我是声明函数后,还没进行函数实现,即cpp文件中就没函数实现的代码,当然就会报这个错误。所以,手动把已声明的函数挨个实现下就OK了。