很难在网上找到关于以下语法的解释,并且在这些论坛中搜索 L"" 并没有提供任何结果。我在 Qt5 中调试一个太长而无法粘贴到此处的应用程序。我正在尝试解决最后一个错误,该错误指向包含 --> return L""; 的代码行。<--。它是下面函数中的最后几行之一。我收到的编译器错误是......
C2440:'return':无法从 'const wchar_t[1]' 转换为 'LPWSTR'
我的第一个问题是这是什么意思 --> L"" <-- ?
最后,我该如何解决这个编译器错误?
LPWSTR ImageThread::getLastErrorString(DWORD lastError)
{
DWORD result = FormatMessage(
FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
lastError,
LANG_USER_DEFAULT,
errorString,
sizeof(errorString),
NULL);
if (result > 0)
{
return errorString;
}
else
{
return L"";
}
}
我的假设是因为 wchar_t[1] 是 1 个字节,而 LPWSTR 是 2 个字节,它无法转换???我不确定这是否重要,但我在 Qt5 的工具栏中出现另一个错误,说“错误:无法使用“UTF-8”编码解码“myfile.cpp”。无法编辑”。它给了我一个选择编码的选项。我确信这是因为这段代码是用旧版本的 Qt 编写的,现在因为我正在用 Qt5 重建所有这些代码,所以发生了一些变化。同样,我不确定这是否与我上面的两个问题有关,但我想全面了解正在发生的事情。