Làm cách nào tôi có thể chuyển đổi từ tên đường dẫn Unicode (LPWSTR) sang tương đương ASCII? Thư viện được gọi là chỉ hiểu chuỗi c.Làm cách nào để chuyển đổi đường dẫn Unicode thành chuỗi c?
Edit: Được rồi, tôi đã lấy GetShortPathName và những gợi ý WideCharToMultiByte và tạo ra những đoạn mã, tôi thử nghiệm nó với một số thư mục có chứa các ký tự Unicode trong đường dẫn và nó làm việc hoàn hảo:
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);
Nhưng cũng không phải là đường dẫn ngắn LPWSTR? Có lẽ OP đang tìm kiếm một cái gì đó như WideCharToMultiByte? –
Tôi thực sự đang tìm kiếm sự kết hợp của cả hai. – metafex
@metafex: Có lẽ bạn nên chỉnh sửa câu hỏi của mình sau đó. Đây là câu trả lời được chấp nhận dường như không có ý nghĩa, với câu hỏi là hiện tại. –