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.
[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
Control de la ordenación en las aplicaciones