没有合适的资源?快使用搜索试试~ 我知道了~
关于VisiBroker-For-Delphi的使用.doc
0 下载量 27 浏览量
2022-11-29
04:24:52
上传
评论
收藏 98KB DOC 举报
温馨提示
试读
32页
关于VisiBroker-For-Delphi的使用.doc
资源推荐
资源详情
资源评论
《关于 VisiBroker For Delphi 的使用》(3)
-CORBA 技术实践(一)
email: 3boy@sohu.com
3,数组对象与简单数据对象的传递
前面提到了一些较为简单的数据操作,我们都可以想象一下,如果操作 CORBA
对象与操作 C/S 结构的数据对象一样的方便,那么 CORBA 又有什么神奇了,
不知道看过李维的分布式多层应用系统的书籍时,是否留意到李维对 CORBA
的评价,无论你看过
还是没有看过,我都要告诉正在使用 CORBA 编程的朋友们,CORBA 比 COM/COM
+简单,而 CORBA 的跨平台特性,以及与 COM/COM+同样的负载平衡能力,足
以让我们将这项分布式技术应用到应用体系的设计之中,其实对于使用 Borl
and 的产品开发分布式系统无论你采用 CORBA 或是 COM/COM+其实最核心的
技术就是 MIDAS,因为
你总可以在 CORBA/COM/COM+中看到 MIDAS 的影子,所以我建议无论你是准备
学习 CORBA 还是学习 COM/COM+最好先学习一下 MIDAS,本文不涉及 MIDAS,关
于 MIDAS 请看李维的《Delphi5.X 分布式多层应用—系统篇》。
为什么我从开始就一直要大家使用文本编辑器之类的东西书写 IDL,而不用 T
ypeLibrary
来书写 IDL,其实我觉得只是为了让刚刚接触 CORBA 的程序员获得一些更多
的 IDL 方面的知识罢了,在实际的开发中你可以完全很方便的使用 TypeLibra
ry 来编写接口规则。
下面我简要的列举几类 IDL 书写的事例与利用 IDL2PAS 生成的 PASCAL 代码。
1、)常量的定义
/**IDL 书写**/
module MyCRB{
const long iMyConst=1;
interface myFace {
const long iiMyConst=2;
};
};
/**Pascal**/
unit MyCRB_I;
interface
uses Corba;
const
iMyCOnst:integer=1;
myFace_iiMyConst=2;
2、)不在接口中申明的常量
/**IDL**/
module MyCRB{
const long myconst=1;
};
/*pascal*/
unit MyCRB_I;
interface
const myconst:integer=1;
3、)枚举类型
/*IDL*/
enum MyCRBKind{A,B,C,D,……..}
/*pascal*/
myCRBkind=(A,B,C,D……..);
4、)结构体
/*IDL*/
struct mystructtype{
long X;
string Y;
boolean Z;
};
/*pascal*/
//XXX_I.pas
type mystructtype=interface;
//XXX_C.pas
mystructtype=interface
function _
get_
X:integer;
function _
get
_Y:string;
function _
get_Z:boolean;
procedure _set_X(const Value:integer);
procedure _set_Y(const Value:string);
procedure _set_Z(const Value:boolean);
property X:integer read _
get
_X write _
Set
_X;
property Y:string read _
get
_Y write _
Set
_Y;
property Z:boolean read _
get
_Z write _
Set
_Z;
…….
还有太多的代码,自己创建一个看一下,为了节约篇幅我就不做详细的翻译
了
下面请大家试一下以下的申明会生成什么样的 Pascal 代码
5、)联合体
union un_exp switch(long)
{
case 1:long x;
case 2:string y;
case 3:st_exp Z;
};
6、sequence(我理解为动态数组)
typedef sequence <long> UnboundeSeq;
typedef sequence <long,42> ShortBoundSeq
7, 数组
const long ArrayBound=10;
typedef long longArray[ArrayBound];
8, 抽象接口
module exp{
interface myface{
long op(in string s);
};
剩余31页未读,继续阅读
资源评论
xinkai1688
- 粉丝: 344
- 资源: 8万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功