std::string &from_astring(std::string &dst, const CHAR *s) { // convert "ANSI code page" string to UTF-16 std::wstring wstring; wstring_from_mbstring(wstring, string_source<char>(s), CP_ACP); // convert UTF-16 to MAME string (UTF-8) return from_wstring(dst, wstring); }
string winerror_to_string(int code) { const size_t size = 1000; wchar_t wbuf[size]; auto res_size = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, nullptr, code, 0, wbuf, size - 1, nullptr); if (res_size == 0) { return "Unknown windows error"; } while (res_size != 0 && (wbuf[res_size - 1] == '\n' || wbuf[res_size - 1] == '\r')) { res_size--; } return from_wstring(wbuf, res_size).ok(); }
std::string from_wstring(const WCHAR *s) { std::string result; from_wstring(result, s); return result; }
std::string from_wstring(const std::wstring &s) { std::string result; from_wstring(result, s); return result; }