Unicode yol adından (LPWSTR) ASCII eşdeğerine nasıl dönüştürebilirim? Çağırılan kütüphane sadece c dizeleri anlar.Unicode yolunu bir c dizesine nasıl dönüştürebilirim?
Düzenleme: Tamam, ben yolda Unicode karakterleri içeren bazı klasörlerin ile test edilmiş ve sorunsuz çalıştı, GetShortPathName ve WideCharToMultiByte önerilerini aldı ve kod parçası oluşturuldu:
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);
Ama kısa yol da LPWSTR değil mi? Belki OP, WideCharToMultiByte gibi bir şey mi arıyor? –
Aslında ikisinin kombinasyonunu arıyorum. – metafex
@metafex: Belki sorunuzu sonra düzenlemelisiniz. Bu kabul edilen cevap, şu anda ne olduğu sorusu ile mantıklı görünmüyor. –