[ad_1]
我必须从 LPCWSTR 转换为 LPCSTR。
我需要这个代码:
WFilePath path; WIN32_FIND_DATAA fd; HANDLE h; h = FindFirstFileA(path.GetString(), &fd);
我尝试过的:
我试图在互联网上搜索但没有找到
解决方案1
也许是这样的?
C++
#include <string> LPCSTR ToLPCSTR(LPCWSTR wstr) { std::wstring ws(wstr); return ws.c_str(); }
请注意,不可能将每个宽字符串字符都转换为 CStr,因此最终可能会导致数据丢失。
解决方案2
要么全部使用 UNICODE
或全部 ASCII
,以避免此类问题。 你可以打电话 FindFirstFileW
哪一个是 UNICODE
版本,使其更简单。 一般情况下最好不要使用 A
或者 W
系统调用的后缀。 编译器将根据您的项目设置选择正确的版本。 如果您必须使用混合字符集,那么您可以使用 WideCharToMultiByte 函数(stringapiset.h) – Win32 应用程序| WideCharToMultiByte 函数(stringapiset.h) – Win32 应用程序微软学习[^] 转换 UNICODE
到 ASCII
。
[ad_2]
コメント