Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 使用LOCALE_ILANGUAGE常量会导致GetLocaleInfo返回无效的区域设置标识符吗?_Windows_Winapi - Fatal编程技术网

Windows 使用LOCALE_ILANGUAGE常量会导致GetLocaleInfo返回无效的区域设置标识符吗?

Windows 使用LOCALE_ILANGUAGE常量会导致GetLocaleInfo返回无效的区域设置标识符吗?,windows,winapi,Windows,Winapi,根据MS文档: Windows Vista及更高版本:使用此常量可能会导致返回无效的区域设置标识符。应用程序在调用此函数时应使用常量 适用于以下国家的MS文件: 注意出于互操作性的原因,应用程序应该更喜欢使用函数GetLocaleInfo,因为Microsoft正在迁移到使用区域名称而不是新区域的区域标识符。任何仅在Windows Vista及更高版本上运行的应用程序都应使用 适用于以下国家的MS文件: 从Windows Vista开始,应用程序不应在LCType参数中使用,以避免失败或检索意外

根据MS文档:

Windows Vista及更高版本:使用此常量可能会导致返回无效的区域设置标识符。应用程序在调用此函数时应使用常量

适用于以下国家的MS文件:

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

适用于以下国家的MS文件:

从Windows Vista开始,应用程序不应在LCType参数中使用,以避免失败或检索意外数据。相反,建议您的应用程序调用getLocaleInfo

现在我的问题是:

既然LOCALE\u ILANGUAGE的使用似乎越来越不受欢迎,那么如何为剪贴板指定CF\u LOCALE?MS文档用于:

CF_地区16


数据是与剪贴板中的文本关联的区域设置标识符的句柄。关闭剪贴板时,如果剪贴板包含CF\u文本数据,但没有CF\u区域设置数据,系统会自动将CF\u区域设置格式设置为当前输入语言。您可以使用CF_LOCALE格式将不同的区域设置与剪贴板文本关联

从剪贴板粘贴文本的应用程序可以检索此格式,以确定用于生成文本的字符集

请注意,剪贴板不支持多个字符集中的纯文本。要实现这一点,请改用RTF之类的格式化文本数据类型

系统使用与CF\u LOCALE关联的代码页将CF\u TEXT隐式转换为CF\u UNICODETEXT。因此,正确的代码页表用于转换

或者也假设没有人会再使用MBCS了?如果是这样的话,我们谈论的是什么样的时间线来进行彻底的弃用


我问这个问题是因为我正在处理一个遗留应用程序,需要理解并告诉我的上级。

使用CF_TEXT或CF_OEMTEXT在24年前就不再有意义了。11年前,依赖LCID不再有意义。由于24>11,您在13之前不会有真正的问题,没有LCID的地区也没有ANSI或OEM代码页。如果没有代码页,那么对于使用Unicode的程序来说,8位编码的文本就是胡言乱语。他们都有。最终是达尔文解决了这个问题,销售MBCS程序的公司不会在效果不佳的地方进行销售。他们可能的意思是,避免使用区域设置语言,因为转换到字符串表示,并不是每个区域设置都会返回可靠的LCID。原因可能是内部转换为区域名称,因此他们进行LCID->名称转换,并在内部调用Ex函数,但对于Vista之前工作的区域名称,他们不太可能故意破坏它。关于MBC,它们显然不会消失,这取决于很多东西,MS比任何人都更关心向后兼容性。@HansPassant,你所说的
是什么意思?既然24>11,那么13就不会有真正的问题了?