[ad_1]
لا بد لي من التحويل من LPCWSTR إلى LPCSTR.
أحتاجه لهذا الكود:
WFilePath path; WIN32_FIND_DATAA fd; HANDLE h; h = FindFirstFileA(path.GetString(), &fd);
ما حاولت:
حاولت البحث في النت لكن لم أجد
الحل 1
شيء من هذا القبيل ربما؟
سي ++
#include <string> LPCSTR ToLPCSTR(LPCWSTR wstr) { std::wstring ws(wstr); return ws.c_str(); }
انتبه إلى أنه ليس من الممكن تحويل كل حرف واسع النطاق إلى CStr، لذلك قد ينتهي بك الأمر إلى فقدان البيانات.
الحل 2
إما استخدام الكل UNICODE
أو الكل ASCII
، لتجنب مثل هذه القضايا. ويمكنك الاتصال FindFirstFileW
وهو UNICODE
النسخة، لتسهيل الأمر. ومن الأفضل عمومًا عدم استخدام A
أو W
اللواحق على مكالمات النظام. سيختار المترجم الإصدار الصحيح بناءً على إعدادات مشروعك. إذا كان يجب عليك استخدام مجموعات أحرف مختلطة، فيمكنك استخدام وظيفة WideCharToMultiByte (stringapiset.h) – تطبيقات Win32 | مايكروسوفت تعلم[^] لتحويل UNICODE
ل ASCII
.
[ad_2]
コメント