[ad_1]
Debo convertir de LPCWSTR a LPCSTR.
Lo necesito para este código:
WFilePath path; WIN32_FIND_DATAA fd; HANDLE h; h = FindFirstFileA(path.GetString(), &fd);
Lo que he probado:
Intenté buscar en internet pero no encuentro
Solución 1
¿Algo como esto quizás?
#include <string> LPCSTR ToLPCSTR(LPCWSTR wstr) { std::wstring ws(wstr); return ws.c_str(); }
Tenga en cuenta que no es posible convertir todos los caracteres de cadena ancha a un CStr, por lo que puede terminar con una pérdida de datos.
Solución 2
O usar todos UNICODE
o todos ASCII
, para evitar este tipo de problemas. Y puedes llamar FindFirstFileW
Cuál es el UNICODE
versión, para hacerlo más sencillo. Generalmente es mejor no utilizar el A
o W
sufijos en llamadas al sistema. El compilador elegirá la versión correcta según la configuración de su proyecto. Si debe utilizar conjuntos de caracteres mixtos, puede utilizar el Función WideCharToMultiByte (stringapiset.h) – Aplicaciones Win32 | Microsoft aprende[^] para convertir UNICODE
a ASCII
.
[ad_2]
コメント