ILE C/C++ 对 *CLD 和 *LOCALE 对象类型的支持
在 V3R7 之前编译的程序使用 *CLD 语言环境支持。 使用 CRTCMOD 或 CRTBNDC 命令上的选项 LOCALETYPE (*CLD) 编译的程序使用 ILE C/C++ 为 *CLD 对象提供的语言环境支持。 在 CRTCMOD/CRTCPPMOD 或 CRTBNDC/CRTBNDCPP 命令上使用选项 LOCALETYPE (*LOCALE) 编译的程序使用 ILE C/C++ 为类型为 *LOCALE 的语言环境提供的语言环境支持。
注:
C++ 不支持 *CLD 对象。
C++ 不支持 *CLD 对象。如果要将应用程序从使用类型为 *CLD 的语言环境转换为类型为 *LOCALE 的语言环境,那么需要对 C 源代码进行的唯一更改是调用 setlocale()。 但是, *CLD 和 *LOCALE 对象的语言环境定义源之间存在许多差异。 许多语言环境的 *LOCALE 定义源成员由系统在可选的可安装库 QSYSLOCALE 中提供。 还可以将现有 *CLD 语言环境源转换为 *LOCALE 源定义。 请参阅 表 1 ,以获取源文件中用于创建 *CLD 对象的命令到源文件中用于创建 *LOCALE 对象的相应关键字的映射。
应用程序可以使用类型为 *CLD 或 *LOCALE 的语言环境,但不能同时使用这两种语言。 如果 ILE C 程序尝试使用这两种类型的语言环境,那么结果是未定义的。 ILE C++ 不使用 *CLD。 另外,仅当使用类型为 *LOCALE 的语言环境时,才支持某些与语言环境相关的函数。 请参阅 表 1 ,以获取语言环境敏感函数的列表。