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為預設值。 應用程式只能指定其中一個尋找旗標。
[in] lpStringSource
來源字串的指標,函式會在其中搜尋 lpStringValue 所指定的字串。
[in] cchSource
大小,以字元為單位,不包括 lpStringSource 所指示之字串的終止 Null 字元。 應用程式通常必須指定正數或 0。 如果來源字串為 Null 終止,而且函式應該自動計算大小,則應用程式可以指定 -1。
[in] lpStringValue
函式在來源字串中搜尋的搜尋字串指標。
[in] cchValue
大小,以字元為單位,不包括終止 Null 字元的 lpStringValue 所指示的字串。 應用程式通常必須指定正數或 0。 如果字串為 Null 終止,且函式應該自動計算大小,應用程式可以指定 -1。
[in] bIgnoreCase
如果函式執行不區分大小寫的比較,則為TRUE,否則為 FALSE。 比較不是語言作業,而且不適用於所有地區設定和語言。 其行為類似於英文的行為。
傳回值
如果成功,會將以 0 為基礎的索引傳回 至 lpStringSource 所指示的來源字串。 如果函式成功,找到的字串大小與 lpStringValue 的值相同。 傳回值 0 表示函式在來源字串的開頭找到相符專案。
如果函式不成功,或找不到搜尋字串,則傳回 -1。 若要取得延伸的錯誤資訊,應用程式可以呼叫 GetLastError,這可以傳回下列其中一個錯誤碼:
- ERROR_INVALID_FLAGS。 為旗標的值無效。
- ERROR_INVALID_PARAMETER。 任何參數值都無效。
- ERROR_SUCCESS。 動作已順利完成,但不會產生任何結果。
備註
由於 FindStringOrdinal 提供二進位比較,因此不會傳回語言適當的結果。 序數比較可能會誤用英文排序行為。 不過,當字元因語言不重要數量而有所不同時,它找不到相符專案。 如需選擇適當排序函式的相關信息,請參閱 排序 。
相較於傳回 0 的 NLS 函式失敗,如果失敗,此函式會傳回 -1。 成功時,它會傳回以0為基礎的索引。 使用此索引可協助函式避免跨一個錯誤和一個字元緩衝區溢出。
此函式是數個 NLS 函式之一,即使在成功時仍會呼叫 SetLastError 。 它會在線程無法比對搜尋字串時,進行此呼叫以清除線程中的最後一個錯誤。 這會清除 GetLastError 傳回的值。
從 Windows 8 開始:FindStringOrdinal 會在 Libloaderapi.h 中宣告。 在 Windows 8 之前,它會在 Winnls.h 中宣告。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 7 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | libloaderapi.h (包含 Windows.h) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |