[ad_1]
Saya harus mengkonversi dari LPCWSTR ke LPCSTR.
Saya memerlukannya untuk kode ini:
WFilePath path; WIN32_FIND_DATAA fd; HANDLE h; h = FindFirstFileA(path.GetString(), &fd);
Apa yang saya coba:
Saya mencoba mencari di internet tetapi saya tidak menemukannya
Solusi 1
Sesuatu seperti ini mungkin?
#include <string> LPCSTR ToLPCSTR(LPCWSTR wstr) { std::wstring ws(wstr); return ws.c_str(); }
Perlu diketahui bahwa tidak mungkin mengonversi setiap karakter string lebar menjadi CStr, sehingga Anda mungkin akan kehilangan data.
Solusi 2
Gunakan semuanya UNICODE
atau semua ASCII
, untuk menghindari masalah seperti itu. Dan Anda bisa menelepon FindFirstFileW
yang mana UNICODE
versi, untuk membuatnya lebih sederhana. Biasanya lebih baik tidak menggunakan A
atau W
akhiran pada panggilan sistem. Kompiler akan memilih versi yang benar berdasarkan pengaturan proyek Anda. Jika Anda harus menggunakan kumpulan karakter campuran maka Anda dapat menggunakan Fungsi WideCharToMultiByte (stringapiset.h) – Aplikasi Win32 | Microsoft Belajar[^] untuk mengubah UNICODE
ke ASCII
.
[ad_2]
コメント