Как указано в заголовке, я хочу знать лучший способ преобразования int в const wchar_t*.
на самом деле я хочу использовать функцию _tcscpy
_tcscpy(m_reportFileName, myIntValue);
Ответ 1
Поскольку вы используете подход C (я предполагаю, что m_reportFileName является сырым массивом C wchar_t), вы можете рассмотреть только swprintf_s() напрямую:
#include <stdio.h> // for swprintf_s, wprintf
int main()
{
int myIntValue = 20;
wchar_t m_reportFileName[256];
swprintf_s(m_reportFileName, L"%d", myIntValue);
wprintf(L"%s\n", m_reportFileName);
}
В более современном С++-подходе вы можете использовать std::wstring вместо массива raw wchar_t и std::to_wstring для преобразования.
Ответ 2
Это не "преобразование". Это двухэтапный процесс:
Отформатируйте число в строку, используя широкие символы.
Используйте адрес строки в вызове.
Первое, что может быть достигнуто с использованием, например, StringCbPrintf(), предполагая, что вы создаете с широкими символами.
Конечно, вы можете выбрать форматирование строки прямо в m_reportFileName, удалив необходимость полностью выполнить копию.
Ответ 3
В C++11:
wstring value = to_wstring(100);
Пред- C++11:
wostringtream wss;
wss << 100;
wstring value = wss.str();