次の方法で共有


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 文字は含まれません。 この値は、 pcchNULL ではなく、関数が成功した場合にのみ有効です。

戻り値

種類: HRESULT

この関数は、次のいずれかの値を返すことができます。 SUCCEEDED マクロと FAILED マクロを使用して、この関数の戻り値をテストすることを強くお勧めします。

リターン コード 説明
S_OK
psz の文字列は NULL ではなく、文字列の長さ (終端の null 文字を含む) は cchMax 文字以下です。
STRSAFE_E_INVALID_PARAMETER
psz の値が NULLcchMaxSTRSAFE_MAX_CCHより大きい、または pszcchMax より長い。
 

この関数は、置き換える関数とは異なり、 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

こちらもご覧ください

StringCbLength