Come posso convertire da un nome di percorso Unicode (LPWSTR) all'equivalente ASCII? La libreria che viene chiamata comprende solo le stringhe.Come posso convertire un percorso Unicode in una stringa c?
Edit: Va bene, ho preso il GetShortPathName e le suggestioni WideCharToMultiByte e ha creato quel pezzo di codice, ho provato con alcune cartelle contenenti caratteri Unicode nel percorso e ha funzionato perfettamente:
wlength = GetShortPathNameW(cpy,0,0);
LPWSTR shortp = (LPWSTR)calloc(wlength,sizeof(WCHAR));
GetShortPathNameW(cpy,shortp,wlength);
clength = WideCharToMultiByte(CP_OEMCP, WC_NO_BEST_FIT_CHARS, shortp, wlength, 0, 0, 0, 0);
LPSTR cpath = (LPSTR)calloc(clength,sizeof(CHAR));
WideCharToMultiByte(CP_OEMCP, WC_NO_BEST_FIT_CHARS, shortp, wlength, cpath, clength, 0, 0);
Ma il percorso breve non è LPWSTR? Forse OP sta cercando qualcosa come WideCharToMultiByte? –
In realtà sto cercando la combinazione di entrambi. – metafex
@metafex: forse dovresti modificare la tua domanda allora. Questa è la risposta accettata non sembra avere senso, con la domanda di essere ciò che è attualmente. –