Bagikan melalui


Fungsi StringCbLengthA (strsafe.h)

Menentukan apakah string melebihi panjang yang ditentukan, dalam byte.

StringCbLength adalah pengganti untuk fungsi berikut:

Sintaks

STRSAFEAPI StringCbLengthA(
  [in]  STRSAFE_PCNZCH psz,
  [in]  size_t         cbMax,
  [out] size_t         *pcbLength
);

Parameter

[in] psz

Jenis: LPCTSTR

String yang panjangnya akan diperiksa.

[in] cbMax

Jenis: size_t

Jumlah maksimum byte yang diizinkan dalam psz, termasuk yang digunakan untuk karakter null yang mengakhiri. Nilai ini tidak boleh melebihi STRSAFE_MAX_CCH * sizeof(TCHAR).

[out] pcbLength

Jenis: size_t*

Jumlah byte dalam psz, tidak termasuk yang digunakan untuk karakter null yang mengakhiri. Nilai ini hanya valid jika pcb bukan NULL dan fungsi berhasil.

Nilai kembali

Jenis: HRESULT

Fungsi ini dapat mengembalikan salah satu nilai berikut. Sangat disarankan agar Anda menggunakan makro BERHASIL dan GAGAL untuk menguji nilai pengembalian fungsi ini.

Menampilkan kode Deskripsi
S_OK
String di psz bukan NULL, dan panjang string (termasuk karakter null yang dihentikan) kurang dari atau sama dengan karakter cbMax .
STRSAFE_E_INVALID_PARAMETER
Nilai dalam psz adalah NULL, cbMax lebih besar dari STRSAFE_MAX_CCH * sizeof(TCHAR), atau psz lebih panjang dari cbMax.
 

Perhatikan bahwa fungsi ini mengembalikan nilai HRESULT , tidak seperti fungsi yang digantikan.

Keterangan

Dibandingkan dengan fungsi yang digantinya, StringCbLength adalah alat tambahan untuk penanganan buffer yang tepat dalam kode Anda. Penanganan buffer yang buruk diimplikasikan dalam banyak masalah keamanan yang melibatkan buffer overruns.

StringCbLength dapat digunakan dalam bentuk generiknya, atau dalam bentuk yang lebih spesifik. Jenis data string menentukan bentuk fungsi ini yang harus Anda gunakan.

Jenis Data String String Literal Fungsi
char "string" StringCbLengthA
TCHAR TEXT("string") StringCbLength
WCHAR L"string" StringCbLengthW
 

UnalignedStringCbLength adalah alias untuk fungsi ini.

Catatan

Header strsafe.h mendefinisikan StringCbLength sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosektor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP dengan SP2 [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2003 dengan SP1 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header strsafe.h

Lihat juga

StringCchLength