Fonction FindStringOrdinal (libloaderapi.h)
Recherche une chaîne Unicode (caractères larges) dans une autre chaîne Unicode pour une comparaison non linguistique.
Syntaxe
int FindStringOrdinal(
[in] DWORD dwFindStringOrdinalFlags,
[in] LPCWSTR lpStringSource,
[in] int cchSource,
[in] LPCWSTR lpStringValue,
[in] int cchValue,
[in] BOOL bIgnoreCase
);
Paramètres
[in] dwFindStringOrdinalFlags
Indicateurs spécifiant les détails de l’opération de recherche. Ces indicateurs s’excluent mutuellement, FIND_FROMSTART étant la valeur par défaut. L’application peut spécifier un seul des indicateurs de recherche.
[in] lpStringSource
Pointeur vers la chaîne source, dans laquelle la fonction recherche la chaîne spécifiée par lpStringValue.
[in] cchSource
Taille, en caractères à l’exception du caractère null de fin, de la chaîne indiquée par lpStringSource. L’application doit normalement spécifier un nombre positif, ou 0. L’application peut spécifier -1 si la chaîne source se termine par un caractère Null et que la fonction doit calculer la taille automatiquement.
[in] lpStringValue
Pointeur vers la chaîne de recherche pour laquelle la fonction recherche dans la chaîne source.
[in] cchValue
Taille, en caractères à l’exception du caractère null de fin, de la chaîne indiquée par lpStringValue. L’application doit normalement spécifier un nombre positif, ou 0. L’application peut spécifier -1 si la chaîne est terminée par un caractère Null et que la fonction doit calculer la taille automatiquement.
[in] bIgnoreCase
TRUE si la fonction doit effectuer une comparaison qui ne respecte pas la casse, et FALSE dans le cas contraire. La comparaison n’est pas une opération linguistique et n’est pas appropriée pour tous les paramètres régionaux et toutes les langues. Son comportement est similaire à celui de l’anglais.
Valeur retournée
Retourne un index de base 0 dans la chaîne source indiquée par lpStringSource en cas de réussite. Si la fonction réussit, la chaîne trouvée a la même taille que la valeur de lpStringValue. La valeur de retour 0 indique que la fonction a trouvé une correspondance au début de la chaîne source.
La fonction retourne -1 si elle ne réussit pas ou si elle ne trouve pas la chaîne de recherche. Pour obtenir des informations d’erreur étendues, l’application peut appeler GetLastError, qui peut retourner l’un des codes d’erreur suivants :
- ERROR_INVALID_FLAGS. Les valeurs fournies pour les indicateurs n’étaient pas valides.
- ERROR_INVALID_PARAMETER. L’une des valeurs de paramètre n’était pas valide.
- ERROR_SUCCESS. L’action s’est terminée avec succès, mais n’a produit aucun résultat.
Remarques
Étant donné que FindStringOrdinal fournit une comparaison binaire, il ne retourne pas de résultats linguistiquement appropriés. La comparaison ordinale peut être confondue avec le comportement de tri en anglais. Toutefois, il ne trouve pas de correspondances lorsque les caractères varient selon des quantités linguistiquement insignifiantes. Consultez Tri pour plus d’informations sur le choix d’une fonction de tri appropriée.
Contrairement aux fonctions NLS qui retournent 0 en cas d’échec, cette fonction retourne -1 en cas d’échec. En cas de réussite, elle retourne un index de base 0. L’utilisation de cet index permet à la fonction d’éviter les erreurs off-by-one et les dépassements de mémoire tampon à un caractère.
Cette fonction est l’une des rares fonctions NLS qui appelle SetLastError même quand elle réussit. Il effectue cet appel pour effacer la dernière erreur dans un thread lorsqu’il ne correspond pas à la chaîne de recherche. Cela efface la valeur retournée par GetLastError.
À compter de Windows 8 : FindStringOrdinal est déclaré dans Libloaderapi.h. Avant Windows 8, elle était déclarée dans Winnls.h.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 7 [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows Server 2008 R2 [applications de bureau | Applications UWP] |
Plateforme cible | Windows |
En-tête | libloaderapi.h (inclure Windows.h) |
Bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |
Voir aussi
Gestion du tri dans vos applications