转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
《关于VisiBroker For Delphi的使用》(3)         ★★★★

《关于VisiBroker For Delphi的使用》(3)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2602 更新时间:2009/4/23 18:40:07
 

《关于VisiBroker For Delphi的使用》(3)

-CORBA技术实践(一)

宜昌市中心人民医院            赵普昉

email: 3boy@sohu.com

 

3,数组对象与简单数据对象的传递

前面提到了一些较为简单的数据操作,我们都可以想象一下,如果操作CORBA对象与操作C/S结构的数据对象一样的方便,那么CORBA又有什么神奇了,不知道看过李维的分布式多层应用系统的书籍时,是否留意到李维对CORBA的评价,无论你看过

还是没有看过,我都要告诉正在使用CORBA编程的朋友们,CORBA比COM/COM+简单,而CORBA的跨平台特性,以及与COM/COM+同样的负载平衡能力,足以让我们将这项分布式技术应用到应用体系的设计之中,其实对于使用Borland的产品开发分布式系统无论你采用CORBA或是COM/COM+其实最核心的技术就是MIDAS,因为

你总可以在CORBA/COM/COM+中看到MIDAS的影子,所以我建议无论你是准备学习CORBA还是学习COM/COM+最好先学习一下MIDAS,本文不涉及MIDAS,关于MIDAS请看李维的《Delphi5.X分布式多层应用—系统篇》。

为什么我从开始就一直要大家使用文本编辑器之类的东西书写IDL,而不用TypeLibrary

来书写IDL,其实我觉得只是为了让刚刚接触CORBA的程序员获得一些更多的IDL方面的知识罢了,在实际的开发中你可以完全很方便的使用TypeLibrary来编写接口规则。

下面我简要的列举几类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);

};

};

9,多重继承

  module M{

interface A{

 void A1();

 void A2();

 };

interface B{

 void B1();

 void B2();

};

interface AB:B,A{

void AB1()

void AB2();

};

};

10,交叉模型定义

module m1{

interface if1;

module m2{

 interface if2{

m1::if1 getIf1();

};

interface if1{

m2::if2 getif2()

};

};

};

以上我介绍了一些数据的定义规范,然而我们需要不仅仅是这样的一些比较抽象的接口定义法则,我们要将法则应用到实际的开发中去,那么我们又是如何运用这些法则了,对于接口描述语言的翻译我前面讲到直接使用IDL2PAS就不讲了,以后的章节中也不会在去将如何转换的问题。下面我们实践一下:

编写接口定义一个返回为浮点类型,输入为短整型变量数组对象的方法

typedef  short   ArrayType[3];

//自定义类型定义长度为3的数组

interface Account {

       float InputArray(in ArrayType myArray);//输入为整形数组,返回类型为float的方法

};

 

//服务端程序的处理xxx_impl.pas

interface

 

uses

  SysUtils,

  CORBA,

  account_i,

  account_c;

 

type

  TAccount = class;

 

  TAccount = class(TInterfacedObject, account_i.Account)

[1] [2] [3] [4]  下一页


[系统软件]InstallShield Express for delphi制作安装程序定…  [系统软件](转帖) 忘记登录密码的解决方案 for XP/2003/2000
[系统软件]交叉编译sshd for IXP425 ARM  Platform by MVL 3…  [Delphi程序]《关于VisiBroker For Delphi的使用》(4)
[Delphi程序]一个超链接Image控件!(For D3,D4,D5,D6)源代码  [Delphi程序]Five of the best tools for Delphi
[Delphi程序]《关于VisiBroker For Delphi的使用》(2)  [Delphi程序]《关于VisiBroker For Delphi的使用》
[Delphi程序]Delphi for .Net 编译器预览 - by John Kaster  [Delphi程序]编写一个单独的Web Service for Delphi7(步骤)
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台