当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++ Builder教程

OMG接口定义语言(IDL)

用 RPC / COM /CORBA 技术来编写分布式系统时都需要接口定义语言 (IDL)。

IDL特点:
1、IDL 是一种规范语言。
2、IDL 看上去很像 C 语言。
3、OMG IDL 的目的是定义接口和精简分布对象的过程。
4、IDL分离对象的接口与其实现。
5、IDL剥离了编程语言和硬件的依赖性。
6、使用IDL定义接口的客户机程序员不知道接口背后的实现细节。
7、IDL提供一套通用的数据类型,并以这些数据类型来定义更为复杂的数据类型。

本文讲解 OMG IDL 的内置类型和关键字。

OMG 接口定义语言内置类型表:

类型

范围

最小大小(bit)

short

-215 到 215-1

16

unsigned short

0 到 216-1

16

long

-231 到 231-1

32

unsigned long

0 到 232-1

32

long long

-263 到 263-1

64

Unsigned long long

0 到 264-1

64

float

IEEE 单精度

32

double

IEEE 双精度

64

long double

IEEE 双字节扩展浮点数

15 位指数,64 位带符号小数

char

ISO Latin-1

8

wchar

从任何宽字符集编码宽字符,如 Unicode

依赖于实现

string

ISO Latin-1,除了 ASCII NUL 以外

可变化

Boolean

TRUE 或 FALSE

未指定

octet

0 到 255

8

any

自己描述的数据类型,可表示任何 IDL 类型

可变化

IDL 基本类型

整数类型

OMG IDL 摒弃int 类型在不同平台上取值范围不同带来的多义性的问题。
IDL提供2 字节 (short)、4 字节 (long) 和 8 字节 (long long) 的整数类型。
所有这些整数类型都有相应的无符号数类型。

浮点类型

OMG IDL 浮点数类型 floatdoublelong double。
OMG IDL 遵循 IEEE 754-1985 二进制浮点数算术的标准。
目前,long double 用于巨大数字,有些语言映射还不支持这种类型。

char 和 wchar

IDL标准字符集:词法约定(表示 IDL 文件的关键字、注释和文字的字符记号)规定 ISO 8859.1 字符集表示 IDL 文件中的字符。ISO 464 定义了空字符(null)和其它图形字符。

OMG IDL必须处理从一个计算机系统到另一个计算机系统之间的字符传输。从一个字符代码集到另一个字符代码集的转换,取决于语言绑定。

OMG IDL char 是一个 8 位变量,可以用两种方法表示一个字符。
首先,它可以从面向字节的代码集编码单字节字符。
其次,在数组中使用时,可以从多字节字符集(如 Unicode),编码任何多字节字符。OMG IDL Wchar 只允许大于 8 个字节的代码集。规范不支持特殊的代码集。
OMG IDL Wchar允许每个客户机和服务器使用本机的代码集,然后指定如何转换字符和字符串,以便在使用不同代码集的环境之间进行传输。

Boolean
Boolean 值只能是 TRUE 或 FALSE。

Octet

octet 是 8 位类型,一种非常重要的类型。

octet 在地址空间之间传送时不会有任何表示更改。octet 在发送二进制数据,并且将它打包时,它的形式仍然相同。其它每种 IDL 类型在传输时都有表示变化。例如,根据 IOR 代码集信息的指示,char 数组会经历代码集转换。而 octet 数组却不会。

any 类型
IDL any 是一种包含任何数据类型的结构。

IDL any由类型码和值组成。类型码描述 any 的值的内容。

共2页 首页 上一页 1 2 下一页 尾页 跳转到
相关内容
赞助商链接