Его было трудно найти объяснение онлайн по синтаксису ниже и искать L "" на этих форумах не дает никаких результатов. Я внутри Qt5 отлаживаю приложение, которое слишком длинное, чтобы вставить здесь. Я пытаюсь решить эту последнюю ошибку, которая указывает на строку кода, содержащую -> return L ""; < -. Его одна из последних строк в приведенной ниже функции. Ошибка компилятора я получаю это ...Никогда не видел этот синтаксис раньше, может кто-то объяснить ..... return L ""
C2440: «возвращение»: не удается преобразовать из 'сопзЬ 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, говоря «Ошибка: не удалось декодировать« myfile.cpp »с кодировкой« UTF-8 ». Редактирование невозможно». Это дает мне возможность выбрать кодировку. Я уверен, что это связано с тем, что этот код был написан с более старой версией Qt, и теперь, потому что я перестраиваю весь этот код с Qt5, произошли некоторые изменения. Опять же, я не уверен, что это касается моих двух вопросов выше, но я хотел нарисовать полную картину того, что происходит.
_searching для L "" на этих форумах не дает никаких результатов_ SO is ** not ** a forum! Обновление: _Мое предположение состоит в том, что wchar_t [1] - 1 байт, а LPWSTR - 2 байта, который он не может преобразовать. Как вы сделали вывод, что 'wchar_t [1]' - один байт? Или 'LPWSTR' составляет 2 байта? В общем, компилятор жалуется на 'L '' '' '' 'const', в то время как ваша функция возвращает значение, отличное от 'const'. –
http://stackoverflow.com/questions/6384118/what-does-the-l-in-front-a-string-mean-in-c – AlexanderVX
Я ничего не могу сказать об ошибке, но вы можете прочитать о строковые литеральные префиксы, такие как 'L" "здесь: http://en.cppreference.com/w/cpp/language/string_literal – HolyBlackCat