C++ 如何将 wchar_t* 转换为 TCHAR [](不是 TCHAR*)

标签 c++ tchar

我想为一个大单元添加一个小的附加选项,所以我不想处理大量代码。

TCHAR szTempFileName[MAX_PATH];
TCHAR lpTempPathBuffer[MAX_PATH];
int uRetVal = 0;
GetTempPath(MAX_PATH,          // length of the buffer
    lpTempPathBuffer); // buffer for path 
GetTempFileName(lpTempPathBuffer, // directory for tmp files
    TEXT("QRCode_"),     // temp file name prefix 
    0,                // create unique name 
    szTempFileName);  // buffer for name 

我想将 szTempFileName 更改为可选的 wstring/std::string/wchar_t* parametr 。

解决方法:

  1. 将 TCHAR 更改为 wchar_t

  2. wcscpy(wchar_t[], wchat_t*);

最佳答案

通常,根本没有理由使用TCHAR。如果您正在使用 wchar_t,只需调用 Unicode variants通过添加 W 后缀直接使用 Winapi 函数:

// Use wchar_t instead of TCHAR.
wchar_t szTempFileName[MAX_PATH];
wchar_t lpTempPathBuffer[MAX_PATH];
int uRetVal = 0;
// Call GetTempPathW directly.
GetTempPathW(MAX_PATH, lpTempPathBuffer);
// Use L"..." instead of TEXT("...").
GetTempFileNameW(lpTempPathBuffer, L"QRCode_", 0, szTempFileName);

关于C++ 如何将 wchar_t* 转换为 TCHAR [](不是 TCHAR*),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40304272/

相关文章:

c++ - 使用 C++ 的高级类型

C++ 运算符 -> 在复数情况下

c++ - TCHAR 数组的深拷贝被截断

C++ 到 vb.net TCHAR 数组使用转换

c++ - 在 vector 中存储模板化对象指针并通过基类指针访问

c++ - eclipse CDT : rebuilding a dependent project

c++ - 获取路径并附加文件名

c++ - 如何将 TCHAR 转换为 const char?

c++ - 将 wstring 转换为 TCHAR 的问题