Преобразовать строку из LPCWSTR и наоборот с ++

Я хочу сравнить LPCWSTR со значением, чтобы убедиться, что они равны. И я не могу понять, как это сравнить. Я создал значение STRING и попробовал различные преобразования, но ничего не получалось. По сути это будет:

request->id // some LPCWSTR value
STRING str = "value" // String value I want to compare
if (request->id != str)
{
 //Something
}

3 ответа

Используйте тип std::wstring вместо std::string, в этом случае у вас есть .c_str() функция-член для работы или копирования строки в буфер с помощью функции WinAPI MultiByteToWideChar().

Включите MFC/ATL и используйте объект CString:

if (CString(request->id) != str)

Хотя мне не совсем понятно, что это за тип STRING. Я бы просто использовал CString для обоих:

STRING str = "value" // String value I want to compare
if (CString(request->id) != str)

Или просто используйте литерал напрямую:

if (CString(request->id) != "value")

Я закончил тем, что заставил это работать, используя этот процесс.

LPCWSTR lpc = L "STRING"; wcscmp (LPCWSTR, LPCWSTR)

Другие вопросы по тегам