Fungsi SHAnsiToUnicode (shlwapi.h)
[Fungsi ini tersedia melalui Windows XP dan Windows Server 2003. Ini mungkin diubah atau tidak tersedia dalam versi Windows berikutnya.]
Mengonversi string dari halaman kode ANSI ke halaman kode Unicode.
Sintaks
int SHAnsiToUnicode(
[in] PCSTR pszSrc,
[out] PWSTR pwszDst,
int cwchBuf
);
Parameter
[in] pszSrc
Jenis: PCSTR
Penunjuk ke string ANSI yang dihentikan null untuk dikonversi ke Unicode.
[out] pwszDst
Jenis: PWSTR
Penunjuk ke buffer yang, ketika fungsi ini berhasil dikembalikan, menerima string yang ditentukan oleh pszSrc, setelah karakter ANSI dikonversi ke Unicode (WCHAR). Buffer harus cukup besar untuk memuat jumlah karakter Unicode yang ditentukan oleh parameter cwchBuf , termasuk karakter null yang mengakhiri.
cwchBuf
Jenis: int
Jumlah karakter Unicode yang dapat dimuat oleh buffer yang diarahkan oleh pwszDst. Parameter ini harus lebih besar dari nol.
Mengembalikan nilai
Jenis: int
Mengembalikan jumlah karakter Unicode yang ditulis ke pwszDst, termasuk karakter null yang mengakhiri. Mengembalikan 0 jika tidak berhasil.
Keterangan
Peringatan Keamanan: Menggunakan fungsi ini dengan tidak benar dapat membahayakan keamanan aplikasi Anda. Misalnya, jika buffer pwszDst tidak cukup besar untuk berisi jumlah karakter yang ditentukan oleh cwchBuf, buffer overrun dapat terjadi. Overrun buffer dapat menyebabkan penolakan serangan layanan terhadap aplikasi jika pelanggaran akses terjadi. Dalam kasus terburuk, buffer overrun mungkin memungkinkan penyerang untuk menyuntikkan kode yang dapat dieksekusi ke dalam proses Anda, terutama jika pwszDst adalah buffer berbasis tumpukan. Saat menyalin seluruh string, perhatikan bahwa sizeof mengembalikan jumlah byte, yang bukan nilai yang benar untuk digunakan untuk parameter cwchBuf . Sebagai gantinya, gunakan sizeof(pwszDst)/sizeof(WCHAR). Perhatikan bahwa teknik ini mengasumsikan bahwa pwszDst adalah array, bukan pointer.
Jika buffer pwszDst tidak cukup besar untuk berisi seluruh string output yang dikonversi, string dipotok agar sesuai dengan buffer. Tidak ada cara untuk mendeteksi bahwa untai (karakter) yang dikembalikan telah dipotok. String selalu dihentikan null, bahkan jika telah dipotok. Ini memastikan bahwa tidak lebih dari karakter cwchBuf disalin ke pwszDst. Tidak ada upaya yang dilakukan untuk menghindari memotong string di tengah pasangan pengganti Unicode.
Jika buffer pszSrc dan pwszDst tumpang tindih, perilaku fungsi tidak terdefinisi.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional, Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server, Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | shlwapi.h |
DLL | Shlwapi.dll (versi 5.0 atau yang lebih baru) |
Lihat juga
StringCchLength
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk