Поделиться через


Функция FindStringOrdinal (libloaderapi.h)

Находит строку Юникода (расширенные символы) в другой строке Юникода для нелингвистического сравнения.

Синтаксис

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

Параметры

[in] dwFindStringOrdinalFlags

Флаги, указывающие сведения об операции поиска. Эти флаги являются взаимоисключающими, по умолчанию используется FIND_FROMSTART. Приложение может указать только один из флагов поиска.

Значение Значение
FIND_FROMSTART
Выполните поиск в строке, начиная с первого символа строки.
FIND_FROMEND
Поиск строки в обратном направлении, начиная с последнего символа строки.
FIND_STARTSWITH
Проверьте, является ли значение, заданное lpStringValue , первым значением в исходной строке, указанной lpStringSource.
FIND_ENDSWITH
Проверьте, является ли значение, заданное lpStringValue , последним значением в исходной строке, указанной lpStringSource.

[in] lpStringSource

Указатель на исходную строку, в которой функция ищет строку, указанную lpStringValue.

[in] cchSource

Размер строки, указанной в lpStringSource, в символах, за исключением завершающего символа NULL. Приложение обычно должно указывать положительное число или 0. Приложение может указать значение -1, если исходная строка заканчивается null и функция должна вычислять размер автоматически.

[in] lpStringValue

Указатель на строку поиска, для которой функция выполняет поиск в исходной строке.

[in] cchValue

Размер строки, указанной lpStringValue, в символах, за исключением завершающего символа NULL. Приложение обычно должно указывать положительное число или 0. Приложение может указать значение -1, если строка заканчивается null и функция должна вычислять размер автоматически.

[in] bIgnoreCase

Значение TRUE , если функция выполняет сравнение без учета регистра, в противном случае — FALSE . Сравнение не является лингвистической операцией и подходит не для всех языковых стандартов и языков. Его поведение аналогично тому, что для английского языка.

Возвращаемое значение

Возвращает индекс на основе 0 в исходную строку, указанную lpStringSource в случае успешного выполнения. Если функция выполняется успешно, найденная строка имеет тот же размер, что и значение lpStringValue. Возвращаемое значение 0 указывает, что функция нашла совпадение в начале исходной строки.

Функция возвращает значение -1, если она не выполняется успешно или если она не находит строку поиска. Чтобы получить расширенные сведения об ошибке, приложение может вызвать Метод GetLastError, который может возвращать один из следующих кодов ошибок:

  • ERROR_INVALID_FLAGS. Значения, предоставленные для флагов, были недопустимыми.
  • ERROR_INVALID_PARAMETER. Любое из значений параметров было недопустимым.
  • ERROR_SUCCESS. Действие выполнено успешно, но не дало результатов.

Комментарии

Так как FindStringOrdinal предоставляет двоичное сравнение, он не возвращает лингвистически соответствующие результаты. Порядковый номер сравнения может быть ошибочно принят за поведение сортировки на английском языке. Однако он не находит совпадений, если символы различаются в лингвистически незначительных значениях. Сведения о выборе подходящей функции сортировки см. в разделе Сортировка .

В отличие от функций NLS, возвращающих значение 0 для сбоя, эта функция возвращает -1 в случае сбоя. При успешном выполнении он возвращает индекс на основе 0. Использование этого индекса помогает функции избежать ошибок и переполнения односимвного буфера.

Эта функция является одной из немногих функций NLS, которая вызывает SetLastError даже при успешном выполнении. Этот вызов выполняется для очистки последней ошибки в потоке, если она не соответствует строке поиска. Это очищает значение, возвращаемое Командлетом GetLastError.

Начиная с Windows 8: FindStringOrdinal объявляется в Libloaderapi.h. До Windows 8 он был объявлен в Winnls.h.

Требования

Требование Значение
Минимальная версия клиента Windows 7 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header libloaderapi.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

FindNLSString

FindNLSStringEx

Обработка сортировки в приложениях

Поддержка национальных языков

Функции поддержки национальных языков