总结: C++(MFC)常见编译异常的处理方法

** C++(MFC)常见编译异常的处理方法**
(我用的是VS2013)
1.解决error C4996:this function or variable may be unsafe
项目>属性>C/C++>预处理器>预处理器定义:(添加如下)
;_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE

2.error C4996 被声明为已否决
项目>属性>C/C++>常规>SDL 检查>否(/sdl-)

3.无法为控件添加变量的问题未找到原因,在类向导中添加会报错;

4.error LNK2019:无法解析的外部符号,error LNK1120:1个无法解析的外部命令
一般可能是使用了的变量或函数没有被定义;

5.error RC2108:expected numerical dialog constant(资源视图中显示在另一个编辑器中打开)
双击错误,添加: “Static”,SS_BITMAP;然后关闭此文件,重新展开资源视图

6.error C2665:重载中没有一个可以转换所有参数类型
error C2664:无法将参数1从"const char"转换成"LPCTSTR"
error C2664:无法将参数2从"LPCTSTR"转换为"const char *"
项目>属性>常规>字符集>使用多字节字符集

7.error C2065:未声明的标识符—>可能是两个头文件相互包含了

8.error C4996: ‘access’:The POSIX name for this item is deprecated.Instead,use the ISO C++ conformat name.
项目>属性>C/C++>预处理器>预处理器定义:(添加如下)
;_CRT_NONSTDC_NO_DEPRECATE

9.error C2440: “static_cast”: 无法从“void (__thiscall ClientDlg:? )
这是由VC6.0升级至VS2005以上平台均会遇到这种情况;
解决方法:把原来的消息函数返回值类型改为LRESULT,函数内可以随便写个return TRUE;
然后消息函数的参数必须改写成(WPARAM wParam,LPARAM lParam)而不论这两个参数是否用得到;
最后,消息映射如ON_MESSAGE(WM_message,& OnMyMessage)

10.VS2013断点单步调试错误—未加载mfc120ud.i386.pdb
工具>选项>调试>符号->选中"Microsoft符号服务器"即可。

你可能感兴趣的:(C++)