StringCchLengthA 関数 (strsafe.h)
文字列が指定した長さを文字数で超えるかどうかを判断します。
StringCchLength は、次の関数に代わる関数です。
構文
STRSAFEAPI StringCchLengthA(
[in] STRSAFE_PCNZCH psz,
[in] size_t cchMax,
[out] size_t *pcchLength
);
パラメーター
[in] psz
型: LPCTSTR
長さがチェックされる文字列。
[in] cchMax
種類: size_t
psz で許容される最大文字数 (終端の null 文字を含む)。 この値は 、STRSAFE_MAX_CCHを超えることはできません。
[out] pcchLength
種類: size_t*
psz 内の文字数 。終端の null 文字は含まれません。 この値は、 pcch が NULL ではなく、関数が成功した場合にのみ有効です。
戻り値
種類: HRESULT
この関数は、次のいずれかの値を返すことができます。 SUCCEEDED マクロと FAILED マクロを使用して、この関数の戻り値をテストすることを強くお勧めします。
リターン コード | 説明 |
---|---|
|
psz の文字列は NULL ではなく、文字列の長さ (終端の null 文字を含む) は cchMax 文字以下です。 |
|
psz の値が NULL、cchMax がSTRSAFE_MAX_CCHより大きい、または psz が cchMax より長い。 |
この関数は、置き換える関数とは異なり、 HRESULT 値を返します。
注釈
置き換える関数と比較して、 StringCchLength は、コード内で適切なバッファー処理を行うための追加のツールです。 バッファー処理の不十分さは、バッファー オーバーランを伴う多くのセキュリティの問題に関係しています。
StringCchLength は、一般的な形式またはより具体的な形式で使用できます。 文字列のデータ型によって、使用する必要があるこの関数の形式が決まります。
文字列型 (String) | リテラル文字列 | 機能 |
---|---|---|
char | "string" | StringCchLengthA |
TCHAR | TEXT("string") | StringCchLength |
Wchar | L"string" | StringCchLengthW |
UnalignedStringCchLength は、この関数のエイリアスです。
注意
strsafe.h ヘッダーは StringCchLength をエイリアスとして定義します。このエイリアスは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | WINDOWS XP と SP2 [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 SP1 [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | strsafe.h |