我試圖格式化使用升壓字符串:升壓::格式和wchar_t的
wchar_t *msg;
// fill msg
boost::format("Error: %s") % msg).str()
我得到的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觀看顯示內容msg正確。
爲什麼不解除消息? – Ylisar 2012-02-22 11:01:01
你有沒有試過'「%ls」'?它用於寬字符的字符串。 – 2012-02-22 11:02:59
@Ylisar用* msg解引用第一個字符的ASCII碼 – 2012-02-22 11:10:33