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
 |