33 lines
958 B
C++
33 lines
958 B
C++
//
|
|
// Created by depre on 2024/1/16.
|
|
//
|
|
|
|
#ifndef UTILHELPER_H
|
|
#define UTILHELPER_H
|
|
#ifdef _WIN32
|
|
const auto ConvertWCharToChar = [](const std::wstring& strSrc) {
|
|
size_t len = 0;
|
|
len = WideCharToMultiByte(CP_ACP, 0, strSrc.c_str(), strSrc.length(), nullptr, 0, nullptr, nullptr);
|
|
char* buffer = new char[len + 1];
|
|
std::string res;
|
|
WideCharToMultiByte(CP_ACP, 0, strSrc.c_str(), strSrc.size(), buffer, len, nullptr, nullptr);
|
|
buffer[len] = '\0';
|
|
res.append(buffer);
|
|
delete[] buffer;
|
|
return res;
|
|
};
|
|
|
|
const auto ConvertCharToWCher = [](const std::string& strSrc) {
|
|
size_t len = 0;
|
|
len = MultiByteToWideChar(CP_ACP, 0, strSrc.c_str(), strSrc.size(), nullptr, NULL);
|
|
wchar_t* buff = new wchar_t[len + 1];
|
|
MultiByteToWideChar(CP_ACP, 0, strSrc.c_str(), strSrc.size(), buff, len);
|
|
buff[len] = '\0';
|
|
std::wstring res;
|
|
res.append(buff);
|
|
delete[] buff;
|
|
return res;
|
|
};
|
|
#endif
|
|
#endif //UTILHELPER_H
|