捐助郴维网
感谢您对郴维网的支持,你的支持将是郴维网持续发展的动力!
二维码
×
当前位置:郴维网 >API档案 > 正文
30 2017.05

GetLocaleInfo

点击次数:1289 更新时间:2017-5-30 13:41:10  【打印此页

原文链接 -> 传送门

函数功能:

GetLocaleInfo 函数用于获取标识符指定的区域设置相关信息。

注意:为了互通性,应用程序应该更倾向于使用 GetLocaleInfoEx 函数而不是 GetLocaleInfo,因为对于新的区域,微软逐渐向使用区域的名字来代替区域标识符。任何在  Windows Vista 和之后版本的应用程序都应该使用 GetLocaleInfoEx 函数。


API 函数原型:

注释:_In_ 说明该参数是输入的。

int GetLocaleInfo(
  _In_      LCID   Locale,
  _In_      LCTYPE LCType,
  _Out_opt_ LPTSTR lpLCData,
  _In_      int    cchData
);


参数解析:

参数

含义

Locale

获取信息所使用的区域标识符。你可以使用 MAKELCID 宏来创建一个区域标识符或者使用下列预定义值中的某一个:

  • LOCALE_CUSTOM_DEFAULT
  • LOCALE_CUSTOM_UI_DEFAULT
  • LOCALE_CUSTOM_UNSPECIFIED
  • LOCALE_INVARIANT
  • LOCALE_SYSTEM_DEFAULT
  • LOCALE_USER_DEFAULT

LCType

需要获取的区域相关信息。详细信息,请参看 GetLocaleInfoEx 函数的 LCType 参数
注意:对于 GetLocaleInfo 函数,值 LOCALE_USE_CP_ACP 仅适用于 ANSI 版本

lpLCData

1. 指向一个缓冲区的指针,该缓冲区在函数中用来获取所需的区域信息
2. 如果 cchData 设置为 0,则不使用该指针。更多信息,请参看备注部分

cchData

1. 指定 lpLCData 参数指示的数据缓冲区的大小,以 TCHAR 为单位
2. 另外,应用程序可以设置该参数为 0,在这种情况下,函数将不会使用 lpLCData 参数,并且返回所需的缓冲区大小,包括终止空字符



返回值:

1. 如果函数调用成功,并且 cchData 为非 0 值,则返回获取的区域数据缓冲区中字符的个数。如果函数调用成功,cchData 为非 0 值,并且指定了 LOCALE_RETURN_NUMBER,则返回值为获取的数据缓冲区中整形数据的大小(也就是说,对于该函数的 Unicode 版本,返回 2,对于该函数的 ANSI 版本,返回 4);如果函数调用成功,并且 cchData 的值为 0,则返回值为以字符为单位,获取的区域数据缓冲区的大小。

2. 如果函数调用失败,则返回 0。

获取有关错误的更多信息,请调用 GetLastError 函数,该函数将返回下列的错误代码:

错误码

含义

ERROR_INSUFFICIENT_BUFFER

提供的缓冲区大小不够大,或者是错误地设置为 NULL

ERROR_INVALID_FLAGS

提供的标识符无效

ERROR_INVALID_PARAMETER

任何一个参数无效



备注:

1. 此函数的操作,见 GetLocaleInfoEx 函数备注部分。

注意:即使 LCType 参数被指定为 LOCALE_FONTSIGNATURE,cchData 和函数返回仍然是 TCHAR 数。对于该函数的 ANSI 和 Unicode 版本,该数不一样。当应用程序调用一般的 GetLocaleInfoEx 版本,并且指定 LOCALE_FONTSIGNATURE,cchData 可以安全地指定为 sizeof(LOCALESIGNATURE) / sizeof(TCHAR)。

2. 下面的例子展示了非文本值缓冲器大小的直接处理:

int   ret;
CALID calid;
DWORD value;

ret = GetLocaleInfo(LOCALE_USER_DEFAULT,
                    LOCALE_ICALENDARTYPE | LOCALE_RETURN_NUMBER,
                    (LPTSTR)&value,
                    sizeof(value) / sizeof(TCHAR) );
calid = value;

LOCALESIGNATURE LocSig;

ret = GetLocaleInfo(LOCALE_USER_DEFAULT,
                    LOCALE_FONTSIGNATURE,
                    (LPWSTR)&LocSig,
                    sizeof(LocSig) / sizeof(TCHAR) );


3. 该函数的 ANSI 版获取的 ANSI 字符串是从 Unicode 转换成的 ANSI,根据区域标识符的默认 ANSI 编码页。然而,如果指定了 LOCALE_USE_CP_ACP,则转换是基于系统的默认 ANSI 编码页。

4. 当使用该函数的 ANSI 版,并且使用了只能用 Unicode 表示的区域标识符,函数还是能够调用成功,因为操作系统使用的是系统编码页。然而,字符串中在系统编码页中未定义的字符将显示为问号(?)。


需求:

Minimum supported client

Windows 2000 专业版 [仅桌面应用程序]

Minimum supported server

Windows 2000 服务器版 [仅桌面应用程序]

Header

Winnls.h (包含于 Windows.h)

Library

Kernel32.lib

DLL

Kernel32.dll

Unicode and ANSI names

GetLocaleInfoW(Unicode)和 GetLocaleInfoA(ANSI)



 

提示
郴维网为您提供各类专业服务:
软件开发,电脑配件销售,WIFI路由器销售,上门电脑维修,上门安装系统,系统安装,软、硬件安装,电脑除尘清灰,显示器维修,WIFI安装调试,服务器维护,数据恢复,密码破解,网络布线,网络检修,打印机维修,打印机加碳粉,苹果电脑安装系统,苹果电脑安装双系统,监控安装维护,电脑外包,笔记本电脑维修,餐饮、美容行业软件安装 等。。。。。。
点击次数:1289 更新时间:2017-5-30 13:41:10  【打印此页

上一条:GetLocalTime

下一条:SYSTEMTIME 结构

关键词推荐:郴州电脑城 郴州电脑维修公司 维修电脑公司 郴州软件开发 上门电脑维修 上门安装系统 笔记本电脑维修 郴州打印机维修 打印机加碳粉 电脑安装双系统 苹果电脑双系统 液晶显示器维修 联想笔记本维修 联想笔记本维修电话 戴尔笔记本维修电话 郴州戴尔笔记本维修 戴尔笔记本郴州维修点 华硕笔记本维修点 郴州华硕笔记本维修 郴州笔记本上网维修