[ad_1]
Je dois convertir de LPCWSTR en LPCSTR.
J’en ai besoin pour ce code :
WFilePath path; WIN32_FIND_DATAA fd; HANDLE h; h = FindFirstFileA(path.GetString(), &fd);
Ce que j’ai essayé :
J’ai essayé de chercher sur internet mais je ne trouve pas
Solution 1
Quelque chose comme ça peut-être ?
#include <string> LPCSTR ToLPCSTR(LPCWSTR wstr) { std::wstring ws(wstr); return ws.c_str(); }
Sachez qu’il n’est pas possible de convertir tous les caractères de chaîne large en CStr, vous risquez donc de vous retrouver avec une perte de données.
Solution 2
Soit utiliser tout UNICODE
ou tout ASCII
, pour éviter de tels problèmes. Et tu peux appeler FindFirstFileW
qui est le UNICODE
version, pour faire plus simple. Il est généralement préférable de ne pas utiliser le A
ou W
suffixes sur les appels système. Le compilateur choisira la version correcte en fonction des paramètres de votre projet. Si vous devez utiliser des jeux de caractères mixtes, vous pouvez utiliser le Fonction WideCharToMultiByte (stringapiset.h) – Applications Win32 | Microsoft Apprendre[^] convertir UNICODE
à ASCII
.
[ad_2]
コメント