compareStringOrdinal 函数 (stringapiset.h)

比较两个 Unicode 字符串以测试二进制等效性。

语法

int CompareStringOrdinal(
  [in] _In_NLS_string_(cchCount1)LPCWCH lpString1,
  [in] int                              cchCount1,
  [in] _In_NLS_string_(cchCount2)LPCWCH lpString2,
  [in] int                              cchCount2,
  [in] BOOL                             bIgnoreCase
);

参数

[in] lpString1

指向要比较的第一个字符串的指针。

[in] cchCount1

lpString1 指示的字符串的长度。 如果字符串以 null 结尾,则应用程序提供 -1。 在这种情况下, 函数会自动确定长度。

[in] lpString2

指向要比较的第二个字符串的指针。

[in] cchCount2

lpString2 指示的字符串的长度。 如果字符串以 null 结尾,则应用程序提供 -1。 在这种情况下, 函数会自动确定长度。

[in] bIgnoreCase

如果函数要使用操作系统的大写表信息执行不区分大小写的比较,则为 TRUE。 如果函数将字符串与传入字符串完全进行比较,则应用程序会将此参数设置为 FALSE 。 请注意,1 是唯一可用于指定此布尔参数不会导致无效参数错误的 true 值的数值。 此参数的布尔值按预期工作。

返回值

如果成功,则返回以下值之一。 若要保持比较字符串的 C 运行时约定,可以从非零返回值中减去值 2。 然后,0、==0 和 >0 的含义<与 C 运行时一致。

  • CSTR_LESS_THAN。 lpString1 指示的值小于 lpString2 指示的值。
  • CSTR_EQUAL。 lpString1 指示的值等于 lpString2 指示的值。
  • CSTR_GREATER_THAN。 lpString1 指示的值大于 lpString2 指示的值。
如果函数不成功,则返回 0。 若要获取扩展的错误信息,应用程序可以调用 GetLastError,这会返回以下错误代码之一:
  • ERROR_INVALID_PARAMETER。 任何参数值都无效。

注解

此函数测试二进制相等性,而不是语言相等性。 有关使用 函数进行序号排序的信息,请参阅 在应用程序中处理排序

与语言相等相关的应用程序应使用 CompareStringCompareStringExlstrcmplstrcmpi。 有关语言排序的详细信息,请参阅 在应用程序中处理排序

从 Windows 8 开始: CompareStringOrdinal 在 Stringapiset.h 中声明。 在 Windows 8 之前,它在 Winnls.h 中声明。

要求

   
最低受支持的客户端 Windows Vista [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2008 [桌面应用 | UWP 应用]
目标平台 Windows
标头 stringapiset.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

CompareString

CompareStringEx

处理应用程序中的排序

国家/地区语言支持

国家/地区语言支持函数

安全注意事项:国际功能

使用 Unicode 规范化来表示字符串