Organized the project files.

And also fixed some bugs.
This commit is contained in:
Bruce
2025-12-08 16:06:13 +08:00
parent ed7fe3af4b
commit d1813637c5
95 changed files with 46744 additions and 36366 deletions
+33
View File
@@ -0,0 +1,33 @@
#pragma once
#include <string>
#include <Windows.h>
#include <locale>
#include <codecvt>
std::wstring StringToWString (const std::string &str, UINT codePage = CP_ACP)
{
if (str.empty ()) return std::wstring ();
int len = MultiByteToWideChar (codePage, 0, str.c_str (), -1, nullptr, 0);
if (len == 0) return std::wstring ();
std::wstring wstr (len - 1, L'\0');
MultiByteToWideChar (codePage, 0, str.c_str (), -1, &wstr [0], len);
return wstr;
}
std::string WStringToString (const std::wstring &wstr, UINT codePage = CP_ACP)
{
if (wstr.empty ()) return std::string ();
int len = WideCharToMultiByte (codePage, 0, wstr.c_str (), -1, nullptr, 0, nullptr, nullptr);
if (len == 0) return std::string ();
std::string str (len - 1, '\0');
WideCharToMultiByte (codePage, 0, wstr.c_str (), -1, &str [0], len, nullptr, nullptr);
return str;
}
std::string WStringToUtf8 (const std::wstring& ws)
{
static std::wstring_convert <std::codecvt_utf8_utf16 <wchar_t>> conv;
return conv.to_bytes (ws);
}
std::wstring Utf8ToWString (const std::string& s)
{
static std::wstring_convert <std::codecvt_utf8_utf16 <wchar_t>> conv;
return conv.from_bytes (s);
}