Я работаю над получением решения Visual C++ 2005 для компиляции в unicode. Тем не менее, в некоторых из моих проектов (но не все), я получаю ошибки в форме:Visual C++ Unicode String Literal дает ошибку: 'L': uneclared identifier
1>.\CBitFlags.cpp(25) : error C2065: 'L' : undeclared identifier
и строка кода в вопросе:
LOGERROR(UTILITY, L"Tried to use object to store %d flags, when max is %d",
Я разделительными перегородками. Кажется, что обработка L является идентификатором, когда L является частью синтаксиса языка. Кто-нибудь знает, есть ли какой-нибудь флаг где-нибудь, который должен быть включен в проекте или компилировать параметры, которые, если не переключить, могут вызвать это? Действительно странная часть - это не все из этого, это лишь некоторые из них. Кажется, он совместим в рамках одного проекта, но у меня есть целые проекты, которые компилируются отлично, а другие, которые терпят неудачу, как это.
Как определяется LOGERROR или UTILITY? – jalf
Префикс L не дает вам строковый литерал Юникода. Строковые литералы Unicode определены в C++ 11 и можно увидеть здесь: http://en.wikipedia.org/wiki/C%2B%2B11#New_string_literals – Verax