StrToInt64ExA 函数 (shlwapi.h)

将表示十进制或十六进制值的字符串转换为 64 位整数。

语法

BOOL StrToInt64ExA(
  [in]  PCSTR      pszString,
        STIF_FLAGS dwFlags,
  [out] LONGLONG   *pllRet
);

参数

[in] pszString

类型:PCTSTR

指向要转换的 null终止字符串的指针。 有关字符串有效形式的更多详细信息,请参阅“备注”部分。

dwFlags

类型:STIF_FLAGS

以下值之一,指定应如何分析 pszString ,以便将其转换为 64 位整数。

STIF_DEFAULT

pszString 处的字符串包含小数值的表示形式。

STIF_SUPPORT_HEX

pszString 处的字符串包含十进制或十六进制值的表示形式。 请注意,在十六进制表示形式中,A-F 字符不区分大小写。

[out] pllRet

类型:LONGLONG*

指向 LONGLONG 类型的变量的指针,该变量接收转换后的字符串的 64 位整数值。 例如,对于字符串“123”,此值指向的整数接收值 123。

如果此函数返回 FALSE,则此值未定义。

如果返回的值太大,无法包含在 longLONG 类型的变量中,则此参数包含值的 64 位低序位。 超出该顺序的任何高序位都将丢失。

返回值

类型:BOOL

如果转换字符串,则返回 TRUE;否则 FALSE

言论

pszString 参数指向的字符串必须具有以下形式之一才能成功分析。

  • 此窗体接受为任一标志下的十进制值。 “'” 语法 (可选空格)(可选符号)(一个或多个十进制数字) '''
  • 传递STIF_SUPPORT_HEX标志时,十六进制值需要这些形式。 “'” 语法(可选空格)(可选符号)0x(一个或多个十六进制数字) '''
    (optional white space)(optional sign)0X(one or more hexadecimal digits)
    
可选符号可以是字符“-”或“+”;如果省略,则假定该符号为正数。
注意 如果值解析为十六进制,则忽略可选符号,即使它是“-”字符。 例如,字符串“-0x1”被分析为 1 而不是 -1。
 
如果 pszString 指向的字符串包含无效字符,则该字符被视为要转换的字符串的末尾,并忽略其余字符。 例如,鉴于无效的十六进制字符串“0x00am123”,StrToInt64Ex 仅识别“0x00a”,将其转换为整数值 10,并返回 TRUE

如果 pllRetNULL,则即使字符串无法执行转换,函数也会返回 TRUE

注意

shlwapi.h 标头将 StrToInt64Ex 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional、Windows XP [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 shlwapi.h
Shlwapi.lib
DLL Shlwapi.dll (版本 5.0 或更高版本)