这可能是一个简单的问题,但我在 DirectXTDK 中有一个 uint32_t 中的值。我想通过将它与 wchar_t 连接来显示它。
这是我到目前为止所拥有的 -
char buffer[1];
wchar_t* ws1 = (wchar_t *)itoa(m_timer.GetFramesPerSecond(), buffer, 10), * ws2 = L" FPS";
std::wstring s(ws1);
s += std::wstring(ws2);
const wchar_t* fps = s.c_str();
// Draw Text to the screen
m_sprites->Begin();
m_font->DrawString(m_sprites.get(), L"DirectX Museum Scene", XMFLOAT2(10, 10), Colors::Yellow);
m_font->DrawString(m_sprites.get(), fps, XMFLOAT2(8, 30), Colors::Yellow);
m_sprites->End();
当尝试显示默认字体无法处理的垃圾字符时,会出现此问题。如果没有 itoa,执行将在 std::wstring s(ws1) 处引发异常。
如何有效地将 uint32_t 转换为 wchar_t * 以正确显示 FPS?谢谢!