37 lines
923 B
C++
37 lines
923 B
C++
#pragma once
|
||
|
||
// 定义 TCHAR 类型
|
||
#ifdef UNICODE
|
||
using char_t = wchar_t;
|
||
#define TEXT(x) L##x
|
||
#else
|
||
using char_t = char;
|
||
#define TEXT(x) x
|
||
#endif
|
||
|
||
inline auto ANSI_TO_TCHAR(const char* ansi_str) -> const char_t* {
|
||
#ifdef UNICODE
|
||
// 如果 TCHAR 是 wchar_t,需要进行转换
|
||
size_t len = strlen(ansiStr) + 1;
|
||
std::vector<wchar_t> wstr(len);
|
||
mbstowcs(wstr.data(), ansiStr, len);
|
||
return wstr.data();
|
||
#else
|
||
// 如果 TCHAR 是 char,直接返回原始字符串
|
||
return ansi_str;
|
||
#endif
|
||
}
|
||
|
||
inline auto TCHAR_TO_ANSI(const char_t* tchar_str) -> const char* {
|
||
#ifdef UNICODE
|
||
// 如果 TCHAR 是 wchar_t,需要进行转换
|
||
size_t len = wcslen(tcharStr) + 1;
|
||
std::vector<char> ansiStr(len);
|
||
wcstombs(ansiStr.data(), tcharStr, len);
|
||
return ansiStr.data();
|
||
#else
|
||
// 如果 TCHAR 是 char,直接返回原始字符串
|
||
return tchar_str;
|
||
#endif
|
||
}
|