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 기본값입니다. 애플리케이션은 찾기 플래그 중 하나만 지정할 수 있습니다.
[in] lpStringSource
함수가 lpStringValue로 지정된 문자열을 검색하는 원본 문자열에 대한 포인터입니다.
[in] cchSource
lpStringSource로 표시된 문자열의 종료 null 문자를 제외한 문자의 크기입니다. 애플리케이션은 일반적으로 양수 또는 0을 지정해야 합니다. 원본 문자열이 null로 종료되고 함수가 크기를 자동으로 계산해야 하는 경우 애플리케이션에서 -1을 지정할 수 있습니다.
[in] lpStringValue
함수가 원본 문자열에서 검색하는 검색 문자열에 대한 포인터입니다.
[in] cchValue
lpStringValue로 표시된 문자열의 종료 null 문자를 제외한 문자의 크기입니다. 애플리케이션은 일반적으로 양수 또는 0을 지정해야 합니다. 문자열이 null로 종료되고 함수가 크기를 자동으로 계산해야 하는 경우 애플리케이션에서 -1을 지정할 수 있습니다.
[in] bIgnoreCase
함수가 대/소문자를 구분하지 않는 비교를 수행하는 경우 TRUE이고, 그렇지 않으면 FALSE입니다. 비교는 언어 작업이 아니며 모든 로캘 및 언어에 적합하지 않습니다. 해당 동작은 영어의 경우와 비슷합니다.
반환 값
성공하면 lpStringSource 가 나타내는 원본 문자열에 0 기반 인덱스 를 반환합니다. 함수가 성공하면 찾은 문자열은 lpStringValue 값과 같은 크기입니다. 반환 값이 0이면 함수가 원본 문자열의 시작 부분에서 일치하는 항목을 찾았습니다.
함수가 성공하지 못하거나 검색 문자열을 찾을 수 없는 경우 -1을 반환합니다. 확장 오류 정보를 가져오기 위해 애플리케이션은 GetLastError를 호출할 수 있으며, 다음 오류 코드 중 하나를 반환할 수 있습니다.
- ERROR_INVALID_FLAGS. 플래그에 제공된 값이 잘못되었습니다.
- ERROR_INVALID_PARAMETER. 매개 변수 값이 잘못되었습니다.
- ERROR_SUCCESS. 작업이 성공적으로 완료되었지만 결과가 생성되지 않았습니다.
설명
FindStringOrdinal은 이진 비교를 제공하므로 언어적으로 적절한 결과를 반환하지 않습니다. 서수 비교는 영어 정렬 동작으로 오인될 수 있습니다. 그러나 문자가 언어적으로 미미한 양에 따라 달라지는 경우 일치 항목을 찾을 수 없습니다. 적절한 정렬 함수를 선택하는 방법에 대한 자세한 내용은 정렬 을 참조하세요.
실패에 대해 0을 반환하는 NLS 함수와 달리 이 함수는 실패하면 -1을 반환합니다. 성공하면 0 기반 인덱스가 반환됩니다. 이 인덱스를 사용하면 함수가 일회용 오류 및 1자 버퍼 오버런을 방지할 수 있습니다.
이 함수는 성공한 경우에도 SetLastError 를 호출하는 몇 안 되는 NLS 함수 중 하나입니다. 검색 문자열과 일치하지 않을 때 스레드의 마지막 오류를 지우기 위해 이 호출을 수행합니다. 그러면 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 |