WinAPI CreateFont 最後一個參數類型為 LPCWSTR (即 const wchar_t*),傳入 std::string::c_str() (const char*) 報類型不匹配。
std::string fontName = "Arial";
int len = MultiByteToWideChar(CP_ACP, 0, fontName.c_str(), -1, NULL, 0);
std::wstring wFontName(len, 0);
MultiByteToWideChar(CP_ACP, 0, fontName.c_str(), -1, &wFontName[0], len);
HFONT hFont = CreateFont(..., wFontName.c_str()); // 正確
TCHAR、TEXT() 宏:TEXT("Arial") 自動展開為 L"Arial" (Unicode) 或 "Arial" (MBCS)。CreateFont(..., TEXT("Arial")) 即可同時兼容兩種編譯模式。CreateFont(..., L"Arial"); // L 前綴表示 wchar_t[]