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 专业版、Windows XP [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 shlwapi.h
Library Shlwapi.lib
DLL Shlwapi.dll (5.0 或更高版本)