C++错误:“const char *“ 类型的值不能用于初始化 “char *“ 类型的实体

在VS2017中使用opencv编写C++程序时出现如下错误:


报错代码如下:

  1. char* image_window = "Source Image";
  2. char* result_window = "Result window";

查了查资料,可能的原因是在VS2017版本中使用这种char*的表达方式会造成程序崩溃,所以VS2017对其进行了控件管理。
解决方案:

1、先将字符使用字符数组进行存储,再使用指针

  1. char image[] = "Source Image";
  2. char result1[] = "Result window";
  3. char* image_window = image;
  4. char* result_window = result1;

2、在前面加上const

  1. const char* image_window = "Source Image";
  2. const char* result_window = "Result window";

3、右键project -> 属性 -> C/C++ -> 语言 -> 符合模式:否

4、对变量进行强转

  1. char* image_window =(char*) "Source Image";
  2. char* result_window = (char*)"Result window";

 

posted on 2020-11-28 19:25  大湾  阅读(1538)  评论(0编辑  收藏  举报

导航