无法将FindFileData.cFileName转换为字符串

alw*_*ent 5 c++ winapi

我正在取得很大进展,但我有两个问题让我放慢了几天.最大的是我想保存FindFileData.cFileName为字符串,但我不能!有帮助吗?

hmj*_*mjd 1

来自WIN32_FIND_DATA参考页的cFileName类型是TCHAR[]。如果启用了 UNICODE(TCHARwchar_t),请使用std::wstring

#include <string>
std::wstring ws(FindFileData.cFileName);
Run Code Online (Sandbox Code Playgroud)

否则使用std::string(按TCHAR原样char):

std::string ws(FindFileData.cFileName);
Run Code Online (Sandbox Code Playgroud)

或者,同时满足两者:

std::basic_string<TCHAR> s(FindFileData.cFileName);
// std::string is a typedef for std::basic_string<char>
// std::wstring is a typedef for std::basic_string<wchar_t>
Run Code Online (Sandbox Code Playgroud)

  • 因为我总是想学习比我目前所知道的更多的东西!:-) (2认同)