getCurrencyFormatEx 函数 (winnls.h)
将数字字符串的格式设置为由 name 指定的区域设置的货币字符串。
语法
int GetCurrencyFormatEx(
[in, optional] LPCWSTR lpLocaleName,
[in] DWORD dwFlags,
[in] LPCWSTR lpValue,
[in, optional] const CURRENCYFMTW *lpFormat,
[out, optional] LPWSTR lpCurrencyStr,
[in] int cchCurrency
);
参数
[in, optional] lpLocaleName
指向 区域设置名称 或以下预定义值之一的指针。
[in] dwFlags
控制函数操作的标志。 如果 lpFormat 未设置为 NULL,则应用程序必须将此参数设置为 0。 在这种情况下,函数使用用户替代将字符串的格式设置为区域设置的默认货币格式。 如果 lpFormat 设置为 NULL,则应用程序可以指定 LOCALE_NOUSEROVERRIDE ,以使用指定区域设置的系统默认货币格式设置字符串的格式。
[in] lpValue
指向以 null 结尾的字符串的指针,该字符串包含要设置格式的数字字符串。 此字符串只能包含以下字符。 所有其他字符都无效。 如果字符串偏离这些规则,函数将返回错误。
- 字符“0”到“9”
- 如果数字是浮点值,则一个小数点 (点)
- 如果数字为负值,则为第一个字符位置的减号
[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。 任何参数值都无效。
注解
从 Windows 8 开始: 如果你的应用将语言标记从 Windows.Globalization 命名空间传递到此函数,它必须首先通过调用 ResolveLocaleName 来转换标记。
要求
最低受支持的客户端 | Windows 2000 专业版 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows 2000 Server [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | winnls.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |