Я пытаюсь отформатировать строку с помощью boost:
wchar_t *msg;
// fill msg
boost::format("Error: %s") % msg).str()
То, что я получаю вместо содержимого msg, это адрес msg в шестнадцатеричном формате.
Нет успеха с такими вещами:
boost::format("Error: %s") % new std::wstring(msg)
boost::format("Error: %1%") % msg
Примечание: хотя я думаю, что это не имеет значения, но способ заполнения сообщения:
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER | 40, NULL, GetLastError(), MAKELANGID(0, SUBLANG_ENGLISH_US), (LPTSTR) &msg, 512, NULL);
и Visual Studio Watch правильно отображает содержимое сообщения.