FindStringOrdinal 関数 (libloaderapi.h)
言語以外の比較のために、別の Unicode 文字列内の Unicode 文字列 (ワイド文字) を検索します。
構文
int FindStringOrdinal(
[in] DWORD dwFindStringOrdinalFlags,
[in] LPCWSTR lpStringSource,
[in] int cchSource,
[in] LPCWSTR lpStringValue,
[in] int cchValue,
[in] BOOL bIgnoreCase
);
パラメーター
[in] dwFindStringOrdinalFlags
検索操作の詳細を指定するフラグ。 これらのフラグは相互に排他的であり、FIND_FROMSTARTが既定です。 アプリケーションでは、検索フラグの 1 つだけを指定できます。
[in] lpStringSource
lpStringValue で指定された文字列を関数が検索するソース文字列へのポインター。
[in] cchSource
lpStringSource で示される文字列の終了 null 文字を除く文字単位のサイズ。 通常、アプリケーションでは正の数 (0) を指定する必要があります。 ソース文字列が null で終了し、関数がサイズを自動的に計算する必要がある場合、アプリケーションは -1 を指定できます。
[in] lpStringValue
関数がソース文字列内で検索する検索文字列へのポインター。
[in] cchValue
lpStringValue で示される文字列の、終端の null 文字を除く文字単位のサイズ。 通常、アプリケーションでは正の数 (0) を指定する必要があります。 文字列が null で終了し、関数がサイズを自動的に計算する必要がある場合、アプリケーションは -1 を指定できます。
[in] bIgnoreCase
関数 が大文字と小文字を区別しない比較を実行する場合は TRUE、それ以外の場合 は FALSE 。 比較は言語操作ではなく、すべてのロケールと言語に適しているわけではありません。 その動作は、英語の場合と似ています。
戻り値
成功した場合は lpStringSource によって示されるソース文字列に 0 から始まるインデックスを返します。 関数が成功した場合、見つかった文字列は lpStringValue の値と同じサイズになります。 戻り値 0 は、関数がソース文字列の先頭で一致するものを検出したことを示します。
関数が成功しない場合、または検索文字列が見つからない場合、関数は -1 を返します。 拡張エラー情報を取得するために、アプリケーションは GetLastError を呼び出すことができます。これにより、次のいずれかのエラー コードが返されます。
- ERROR_INVALID_FLAGS。 フラグに指定された値が無効でした。
- ERROR_INVALID_PARAMETER。 パラメーター値のいずれかが無効です。
- ERROR_SUCCESS。 アクションは正常に完了しましたが、結果は得われませんでした。
注釈
FindStringOrdinal ではバイナリ比較が提供されるため、言語的に適切な結果は返されません。 序数比較は、英語の並べ替え動作と間違っている可能性があります。 ただし、文字が言語的に重要でない量によって異なる場合、一致は見つかりません。 適切な 並べ替え 関数の選択については、「並べ替え」を参照してください。
失敗した場合に 0 を返す NLS 関数とは対照的に、この関数は失敗した場合は -1 を返します。 成功すると、0 から始まるインデックスが返されます。 このインデックスを使用すると、関数が 1 つずつオフエラーや 1 文字のバッファー オーバーランを回避できます。
この関数は、成功した場合でも SetLastError を呼び出す数少ない NLS 関数の 1 つです。 この呼び出しは、検索文字列との一致に失敗したときにスレッドの最後のエラーをクリアします。 これにより、GetLastError によって返される値がクリアされます。
Windows 8以降: FindStringOrdinal は Libloaderapi.h で宣言されています。 Windows 8する前は、Winnls.h で宣言されていました。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 R2 [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | libloaderapi.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |