findNLSString 函数 (winnls.h)

在标识符指定的区域设置的另一个 Unicode 字符串中查找 (宽字符) 或其等效项的 Unicode 字符串。

谨慎 由于具有非常不同的二进制表示形式的字符串可以比较为相同,因此此函数可能会引发某些安全问题。 有关详细信息,请参阅 安全注意事项:国际功能中的比较函数讨论。
 
注意 出于互操作性原因,应用程序应首选 FindNLSStringEx 函数,因为 Microsoft 正在迁移到使用区域设置名称而不是新区域设置的区域设置标识符。 尽管 FindNLSString 支持自定义区域设置,但大多数应用程序应使用 FindNLSStringEx 来获得这种类型的支持。
 

语法

int FindNLSString(
  [in]            LCID    Locale,
  [in]            DWORD   dwFindNLSStringFlags,
  [in]            LPCWSTR lpStringSource,
  [in]            int     cchSource,
  [in]            LPCWSTR lpStringValue,
  [in]            int     cchValue,
  [out, optional] LPINT   pcchFound
);

参数

[in] Locale

指定区域设置的区域设置标识符。 可以使用 MAKELCID 宏创建标识符或使用以下预定义值之一。

Windows Vista 及更高版本: 还支持以下自定义区域设置标识符。

[in] dwFindNLSStringFlags

指定查找操作详细信息的标志。 有关详细定义,请参阅 FindNLSStringEx 的 dwFindNLSStringFlags 参数。

[in] lpStringSource

指向源字符串的指针,函数在其中搜索 lpStringValue 指定的字符串。

[in] cchSource

lpStringSource 指示的字符串的大小(以字符为单位,不包括终止 null 字符)。 应用程序不能为此参数指定 0 或任何除 -1 以外的负数。 如果源字符串以 null 结尾,则应用程序指定 -1,并且函数应自动计算大小。

[in] lpStringValue

指向搜索字符串的指针,函数在源字符串中搜索该字符串。

[in] cchValue

lpStringValue 指示的字符串的大小,以字符为单位,不包括终止 null 字符。 应用程序不能为此参数指定 0 或任何除 -1 以外的负数。 如果搜索字符串以 null 结尾,则应用程序指定 -1,并且函数应自动计算大小。

[out, optional] pcchFound

指向包含函数找到的字符串长度的缓冲区的指针。 有关详细信息,请参阅 FindNLSStringExpcchFound 参数。

返回值

如果成功,则返回 lpStringSource 指示的源字符串中的从 0 开始的索引。 结合 pcchFound 中的值,此索引提供源字符串中整个找到的字符串的确切位置。 返回值 0 是源字符串中的无错误索引,匹配的字符串位于偏移量为 0 的源字符串中。

如果函数不成功,则返回 -1。 若要获取扩展的错误信息,应用程序可以调用 GetLastError,这会返回以下错误代码之一:

  • ERROR_INVALID_FLAGS。 为标志提供的值无效。
  • ERROR_INVALID_PARAMETER。 任何参数值都无效。
  • ERROR_SUCCESS。 操作已成功完成,但未产生任何结果。

注解

请参阅 FindNLSStringEx 的备注。

要求

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

另请参阅

CompareString

FindNLSStringEx

处理应用程序中的排序

LCMapString

国家/地区语言支持

国家/地区语言支持函数

安全注意事项:国际功能