数字图像处理遇到的小问题

照搬代码,还是会出现一些小的问题,主要是由于环境引起的问题

问题一error C4703: 使用了可能未初始化的本地指针变量“xxx”

以下问题转自https://blog.csdn.net/sinat_20265495/article/details/62056034

问题分析:

在VS2013创建项目时,会有一个勾选项,叫做“安全开发生命周期(SDL)检查”,这个东西是微软在VS2013新推出的东西,为了是能更好的监管开发者的代码安全,如果勾选上这一项,那么他将严格按照SDL的规则编译代码,会有一些以前常用的函数无法通过编译,比如在VS2010中的scanf是warning那么在VS2013中就是error了。

查看MSDN中对SDL的描述,SDL检查会视以下告警为错误:

数字图像处理遇到的小问题_第1张图片

也就是在编译的时候,当SDL检查启用时,编译器会严格检测缓冲区的溢出,并且会在delete某个指针时,自动为这个指针定义一个非有效的值,防止在delete以后仍用到这个指针时出错。还有就是会在你定义一个对象时,自动为这个对象赋值零。

从这些功能来看,有些功能还是不错的,不但方便了程序员使用也增强了程序的健壮性,但是对老版本程序的兼容就会出现问题,以前程序中编译通过的内容也许在VS2013中就没有办法通过。


解决方法:

有一个选择打开和关闭SDL检查的位置就是:项目属性->配置属性->C/C++->SDL检查,选测是或者否。

此时我们选择”否”,则上面的那个错误就不会出现了。

或者将指针变量初始化为nullptr,也可以解决。

问题二:如何解决'fopen' 报错说unsafe的问题

解决方法转自https://blog.csdn.net/asbs12/article/details/51250288

碰到问题后按如下处理:

在根目录点击右键选择属性

数字图像处理遇到的小问题_第2张图片


选中配置属性 C/C++中的预处理器,在预处理器定义栏点击右侧的下拉箭头并选择编辑






数字图像处理遇到的小问题_第3张图片

会出现如下界面

数字图像处理遇到的小问题_第4张图片

_CRT_SECURE_NO_WARNINGS粘贴到最后一行数字图像处理遇到的小问题_第5张图片

确定后再编译,问题解决

问题三:error C2664: “fopen”: 不能将参数 1 从“CString”转换为“const char *”

解决方法转自https://blog.csdn.net/eva1988725/article/details/6300154

按照下面操作,依次选择

项目->()属性->常规->项目默认值->字符集->使用多字节字符集(这个选了就可以了)

你可能感兴趣的:(数字图像处理(c++))