不能将const char*类型的值分配到const* 类型的实体

本文介绍在使用Visual Studio 2017进行Opencv项目调试时遇到的问题及解决方案,主要涉及编译器选项/permissive-的设置调整,避免因语言符合模式导致的编译错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在学习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]后调试通过。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值