Преобразовать строку из 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)