Как получить представление строки (как LPCWSTR
) переменной типа UINT
?преобразование между UINT и LPCWSTR в C++
ответ
A LPCWSTR
- это константа LPWSTR
, которая является указателем на строку с широким символом. Вы должны использовать std::wstringstream
:
#include <sstream>
// ...
UINT number = 42;
std::wstringstream wss;
std::wstring str;
wss << number;
wss >> str;
LPCWSTR result = str.c_str();
Попробуйте _itow. Он принимает целое число без знака, адрес большого символьного буфера и какую базу использовать для преобразования.
Вот пример:
UINT x = 1000245;
LPWSTR y = (LPWSTR)malloc(30);
_itow(x, y, 10);
он не работает ... –
Для MSVC вы должны использовать безопасную версию '_itow', чтобы избежать переполнения буфера,' _itow_s': http://msdn.microsoft.com/en-us/library/0we9x30h(v = VS.100) .aspx – bobbymcr
Я получаю эту ошибку: main.cpp (45): ошибка C2660: '_itow_s': функция не принимает 3 аргумента –
'UINT' является ЬурейиМ для' без знака int' и 'LPCWSTR' является 32-битным указателем на строку из 16-битных символов (давно pointer- to-constant-wide-character-string aka 'const wchar_t *'). Вы пытаетесь превратить 'UINT' в строку, или вы на самом деле означаете, что' UINT' должен указывать на строку? – birryree
no no, я имел в виду строку, а не указатель –
Вы не ответили на вопрос @ birryree - пытаетесь ли вы получить строковое представление целого числа (например, itoa)? – bobbymcr