在学习opencv,VS2017调试例程有问题。
在项目属性中将语言符合模式改成否即可(不能算原创了…),如果选是/permissive-:表示启用所有严格标准符合性编译器选项,并禁用大部分特定于 Microsoft 的编译器扩展(但有一些例外,比如 __declspec(dllimport))。 在 Visual Studio 2017 15.5 版中此选项默认为开启状态。 /permissive- 符合性模式包括对两阶段名称查找的支持。有关详细信息,请参阅https://docs.microsoft.com/zh-cn/cpp/overview/cpp-conformance-improvements?view=vs-2017
// DisplayImage.cpp: 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
#include <opencv2\core\core.hpp>
#include <opencv2\highgui\highgui.hpp>
using namespace std;
using namespace cv;
int main(int argc, char argv[])//原代码用的argv**,会触发异常"不能将const char*类型的值分配到const* 类型的实体”
{
argv = "C:\\images\\lena.jpg";
Mat image;
image = imread(argv, CV_LOAD_IMAGE_COLOR);
if(!image.data)
{
cout << "无法打开或找不到图文件" << std::endl;
return -1;
}
namedWindow("Display window", CV_WINDOW_NORMAL);
imshow("Display window", image);
waitKey(0);
return 0;
}
上面代码主函数体中argv应为argv[1],否则还要将主函数参数中char** argv改成char* argv、char argv[]或者char argv[100]后调试通过。