错误 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)
我有一个问题:
我在 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)