Menukar std::string kepada LPCSTR dan LPWSTR
Dalam C , kadangkala perlu menukar std::string kepada LPCSTR atau LPWSTR untuk digunakan dengan API tertentu. Ini boleh dicapai menggunakan kaedah c_str().
Menukar kepada LPCSTR
Untuk menukar std::string kepada LPCSTR (penunjuk kepada pemalar yang ditamatkan nol tatasusunan aksara), hanya gunakan kaedah c_str():
<code class="cpp">std::string str = "Hello, world!"; LPCSTR lpcstr = str.c_str();</code>
Menukar kepada LPWSTR
Menukar kepada LPWSTR (penunjuk kepada tatasusunan aksara lebar yang berterusan) adalah lebih kompleks sedikit kerana ia memerlukan penggunaan jenis WCHAR:
<code class="cpp">std::string str = "Hello, world!"; size_t length = str.length(); WCHAR* buffer = new WCHAR[length + 1]; MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, buffer, (int)length); LPWSTR lpwstr = buffer;</code>
Memahami LPCSTR, LPSTR, LPWSTR dan LPCWSTR
Akronim ini bermaksud:
Dalam am, LPCSTR dan LPCWSTR digunakan dengan rentetan malar, manakala LPSTR dan LPWSTR digunakan dengan rentetan boleh ubah. Ambil perhatian bahawa "L" dalam nama ini adalah warisan daripada Windows 16-bit dan boleh diabaikan.
Atas ialah kandungan terperinci Bagaimana untuk Menukar std::string kepada LPCSTR dan LPWSTR dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!