Función FindStringOrdinal (libloaderapi.h)

Busca una cadena Unicode (caracteres anchos) en otra cadena Unicode para una comparación no lingüística.

Sintaxis

int FindStringOrdinal(
  [in] DWORD   dwFindStringOrdinalFlags,
  [in] LPCWSTR lpStringSource,
  [in] int     cchSource,
  [in] LPCWSTR lpStringValue,
  [in] int     cchValue,
  [in] BOOL    bIgnoreCase
);

Parámetros

[in] dwFindStringOrdinalFlags

Marcas que especifican los detalles de la operación de búsqueda. Estas marcas son mutuamente excluyentes, con FIND_FROMSTART siendo el valor predeterminado. La aplicación puede especificar solo una de las marcas de búsqueda.

Valor Significado
FIND_FROMSTART
Busque la cadena, empezando por el primer carácter de la cadena.
FIND_FROMEND
Busque la cadena en la dirección inversa, empezando por el último carácter de la cadena.
FIND_STARTSWITH
Pruebe para averiguar si el valor especificado por lpStringValue es el primer valor de la cadena de origen indicada por lpStringSource.
FIND_ENDSWITH
Pruebe para averiguar si el valor especificado por lpStringValue es el último valor de la cadena de origen indicada por lpStringSource.

[in] lpStringSource

Puntero a la cadena de origen, en la que la función busca la cadena especificada por lpStringValue.

[in] cchSource

Tamaño, en caracteres que excluyen el carácter nulo de terminación, de la cadena indicada por lpStringSource. Normalmente, la aplicación debe especificar un número positivo o 0. La aplicación puede especificar -1 si la cadena de origen termina en null y la función debe calcular el tamaño automáticamente.

[in] lpStringValue

Puntero a la cadena de búsqueda para la que la función busca en la cadena de origen.

[in] cchValue

Tamaño, en caracteres que excluyen el carácter nulo de terminación, de la cadena indicada por lpStringValue. Normalmente, la aplicación debe especificar un número positivo o 0. La aplicación puede especificar -1 si la cadena termina en null y la función debe calcular el tamaño automáticamente.

[in] bIgnoreCase

TRUE si la función va a realizar una comparación sin distinción entre mayúsculas y minúsculas y FALSE en caso contrario. La comparación no es una operación lingüística y no es adecuada para todas las configuraciones regionales e idiomas. Su comportamiento es similar al de inglés.

Valor devuelto

Devuelve un índice basado en 0 en la cadena de origen indicada por lpStringSource si se ejecuta correctamente. Si la función se ejecuta correctamente, la cadena encontrada tiene el mismo tamaño que el valor de lpStringValue. Un valor devuelto de 0 indica que la función encontró una coincidencia al principio de la cadena de origen.

La función devuelve -1 si no se realiza correctamente o si no encuentra la cadena de búsqueda. Para obtener información de error extendida, la aplicación puede llamar a GetLastError, que puede devolver uno de los siguientes códigos de error:

  • ERROR_INVALID_FLAGS. Los valores proporcionados para las marcas no eran válidos.
  • ERROR_INVALID_PARAMETER. Cualquiera de los valores de parámetro no era válido.
  • ERROR_SUCCESS. La acción se completó correctamente, pero no produjo ningún resultado.

Comentarios

Dado que FindStringOrdinal proporciona una comparación binaria, no devuelve resultados lingüísticos adecuados. La comparación ordinal podría confundirse con el comportamiento de ordenación en inglés. Sin embargo, no encuentra coincidencias cuando los caracteres varían según las cantidades lingüísticasmente insignificantes. Consulte Ordenación para obtener información sobre cómo elegir una función de ordenación adecuada.

A diferencia de las funciones NLS que devuelven 0 para un error, esta función devuelve -1 si se produce un error. Si se ejecuta correctamente, devuelve un índice basado en 0. El uso de este índice ayuda a la función a evitar errores fuera de uno y saturaciones de búfer de un carácter.

Esta función es una de las pocas funciones NLS que llama a SetLastError incluso cuando se realiza correctamente. Realiza esta llamada para borrar el último error de un subproceso cuando no coincide con la cadena de búsqueda. Esto borra el valor devuelto por GetLastError.

A partir de Windows 8: FindStringOrdinal se declara en Libloaderapi.h. Antes de Windows 8, se declaró en Winnls.h.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 R2 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado libloaderapi.h (incluya Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

FindNLSString

FindNLSStringEx

Control de la ordenación en las aplicaciones

Compatibilidad con idiomas nacionales

Funciones de compatibilidad con idiomas nacionales