GetCurrencyFormatW 函数 (winnls.h)

将数字字符串的格式设置为标识符指定的区域设置的货币字符串。

注意 出于互操作性原因,应用程序应首选 GetCurrencyFormatEx 函数来 GetCurrencyFormat,因为Microsoft正迁移到使用区域设置名称而不是新区域设置的区域设置标识符。 仅在 Windows Vista 及更高版本上运行的任何应用程序都应使用 GetCurrencyFormatEx
 

语法

int GetCurrencyFormatW(
  [in]            LCID               Locale,
  [in]            DWORD              dwFlags,
  [in]            LPCWSTR            lpValue,
  [in, optional]  const CURRENCYFMTW *lpFormat,
  [out, optional] LPWSTR             lpCurrencyStr,
  [in]            int                cchCurrency
);

参数

[in] Locale

区域设置标识符,指定此函数为其设置货币字符串格式的区域设置。 可以使用 MAKELCID 宏创建区域设置标识符或使用以下预定义值之一。

[in] dwFlags

控制货币格式的标志。 如果未将 lpFormat设置为 NULL,则应用程序必须将此参数设置为 0。 在这种情况下,该函数使用用户替代设置字符串的格式设置为区域设置的默认货币格式。 如果 lpFormat 设置为 NULL,则应用程序可以使用指定区域设置的系统默认货币格式来指定字符串格式 LOCALE_NOUSEROVERRIDE

强烈建议不要 使用 LOCALE_NOUSEROVERRIDE,因为它禁用用户首选项。
 

[in] lpValue

有关详细信息,请参阅 GetCurrencyFormatExlpValue 参数。

[in, optional] lpFormat

指向包含货币格式信息的 CURRENCYFMT 结构的指针。 结构的所有成员都必须包含适当的值。 如果函数是使用指定区域设置的货币格式,应用程序可以将此参数设置为 NULL。 如果未将此参数设置为 NULL,则该函数仅使用指定的区域设置来设置在 CURRENCYFMT 结构中指定的格式信息,例如区域设置使用的负号的字符串值。

[out, optional] lpCurrencyStr

指向此函数检索格式化货币字符串的缓冲区的指针。

[in] cchCurrency

lpCurrencyStr 缓冲区的大小(以字符为单位)。 如果函数返回保存格式化货币字符串所需的缓冲区大小,则应用程序将此参数设置为 0。 在这种情况下,不使用 lpCurrencyStr 参数。

返回值

返回 lpCurrencyStr 指示的缓冲区中检索的字符数(如果成功)。 如果 cchCurrency 参数设置为 0,则该函数将返回保存格式化货币字符串所需的缓冲区大小,包括终止 null 字符。

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

  • ERROR_INSUFFICIENT_BUFFER。 提供的缓冲区大小不够大,或者错误地设置为 NULL
  • ERROR_INVALID_FLAGS。 为标志提供的值无效。
  • ERROR_INVALID_PARAMETER。 任何参数值都无效。

言论

此函数可以从 自定义区域设置检索数据。 数据不保证从计算机到计算机或应用程序运行之间相同。 如果应用程序必须持久保存或传输数据,请参阅 使用持久区域设置数据

当此函数的 ANSI 版本与仅 Unicode 区域设置标识符一起使用时,调用可能会成功,因为操作系统使用系统代码页。 但是,系统代码页中未定义的字符在字符串中显示为问号(?)。

注意

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

要求

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

另请参阅

CURRENCYFMT

GetCurrencyFormatEx

GetNumberFormat

国家语言支持

国家语言支持函数