其实这个也算不上什么大问题,但我还是决定把它记录下来,免得忘记。
在遇到这个报错时,我才刚开始学习Qt不久,属于是门槛还没摸到就先进坑里了。
当时我是在学习信号与槽机制,准备尝试做一个简单的“点击按钮-信号发射–>槽-信号接收–>弹出窗口–显示信号接收成功”来巩固学习。
结果如下图所示:
error: C3872: “0x2033”: 此字符不允许在标识符中使用
error: C3688: 文本后缀“淇″彿鎺ユ敹鎴愬姛”无效;未找到文文本运算符或文本运算符模板“operator """"淇″彿鎺ユ敹鎴愬姛”
error: C2059: 语法错误:“!”
error: C2001: 常量中有换行符
直接爆出四个报错,把我人都整麻了。
后面跑网上翻了一下,发现了一些相关又不完全相关的东西,东拼西凑下来,总结一下就是:
error: C3688: 文本后缀“淇″彿鎺ユ敹鎴愬姛”无效;未找到文文本运算符或文本运算符模板“operator “”""淇″彿鎺ユ敹鎴愬姛”
这种报错,提到了“C3688,文本后缀,operator”,
而网上有一个资料
error: C3688:文本后缀“_FSTREXP”无效;未找到文本运算或文本运算符模板“operator""""_FSTREXP”
相关知识点:_FUNCTION_作为宏参数时,前后要有空格
解决方法:
将
#define dPrintA(x) OutputDebugStringA(x)
修改为
#define dPrintA(x) OutputDebugStringA( x )
在这个资料里也提到了“C3688,文本后缀,operator”
那我们大胆假设一下,我们的这个报错也是因为没弄空格引起的
再看看报错“ C2059:语法错误:"!" ”
那我们应该是在双引号与字符串中间相接触的地方没有加空格,
所以先试试,给它把空格都加上
果不其然,改完之后就完全没问题了,完美运行如下图:
解决方法总结:
将
QMessageBox::information(NULL,"信号与槽的学习","信号接收成功!!");
修改成
QMessageBox::information(NULL," 信号与槽的学习 "," 信号接收成功!! ");
即可。