错误 c2440:无法将 const char[4] 转换为 char*

Error c2440: cannot convert const char[4] to char*

我有一个问题:

我在 QT Creator(在 MSVC2013 中构建)中有一个代码,最初可以完美运行,现在在其他计算机上使用更新的 QT Creator(在 MSVC2015 中构建)尝试运行时给我这个错误:

"error: C2664: 'wave_object wave_init(char *)': cannot convert argument 1 from 'const char [4]' to 'char *'" "Conversion from string literal loses const qualifier (see /Zc:strictStrings)"

这部分代码有错误:

wave_object db4;                            
wt_object wt;
db4 = wave_init("db4");                     
wt = wt_init(db4, "dwt", N, 4);            
setDWTExtension(wt, "sym");
setWTConv(wt, "direct");

方法的定义在这里:

wave_object wave_init(char* wname) {
wave_object obj = NULL;
int retval;
retval = 0;

if (wname != NULL) {
    retval = filtlength(wname);
}

我用 MinGW 编译这个并且没有错误,在使用 MSVC2013 构建的 QT Creator 的计算机上也可以使用 MSVC2013 编译器正常工作,但是现在使用 MSVC2015 构建的 QT Creator 在 MSVC2015 编译器中出现此错误。

我需要使用与构建 QT Creator 相同的编译器,因为我正在使用 QWT 插件并且必须使用相同的编译器。

感谢您的帮助! =)

在您的函数调用中:

db4 = wave_init("db4"); 

"db4"参数是字符串字面量,严格意义上是const.

你定义的函数:

wave_object wave_init(char* wname)

没有将参数 wname 识别为 const

修改如下:

wave_object wave_init(const char* wname)