首页产品库评测行情新闻|手机数码笔记本台式机DIY硬件数字家庭数码相机办公外设|软件下载游戏开发|社区

更多

数码相机
MP4
LCD
机箱
音箱

天极网 > 软件频道 > 设计在线 > 网页UI设计>BCB环境下CORBA实做之自己动手(下)

BCB环境下CORBA实做之自己动手(下)

2000-07-16 00:00作者:出处:-责任编辑:

p>建立一个CORBA客户端

  俺已经晕了,客户端怎么做来着?

  幸好昨天已经把文档翻译过来了,瞄了一眼,如果用静态绑定的话就只要运行两个向导就成:CORBA Client wizard和Use CORBA Object wizard。

  那就干吧。咱们做一个使用VCL的客户,调用Server对象的getName方法,并将结果显示在Form的Edit里。

1、File|New, Multitier,CORBA Client wizard:
CORBA Client Wizard

  别的不动它,用Add...把testobj.idl加上。

  OK。之后Project1工程生成,把它存成testclient,unit1存成clientmain。

2、Edit|Use CORBA Object:
Use CORBA Object Wizard

  如果IDL文件没有选好用...选上,俺这儿是自动加好了。

  Interface Name嘛,IDL文件里也定义了StockServer,所以只有它一个可选。

  Object Name写什么呢?别慌,记得在服务器的CORBA Object Implementation wizard里指定过来着,是StockServerObject,就写它。绑定机制显然要用Use in Form才方便,Form名字就懒得改了。

OK,向导自动修改了俺的clientmain.cpp/h,加入带stockServer属性(__property)的TForm1类的实例Form1。

  加上删除线的说明有点问题,应该是:

  当调用过Edit|Use Corba Object之后,bcb会自动将
  USEUNIT("..\testobj_c.cpp");
  USEUNIT("..\testobj_s.cpp");
  加到testclient(project的主程序)里,前面指定的idl文件里的接口对client就可用了。我猜想如果这个时候idl文件还没有被编译,bcb应该会自动用idl2cpp去编译吧。

  然后bcb会弹出一个对话框,让程序员从里边选择使用哪个接口及该接口实现类的哪个实例,并可以指定一个对象名,这个名字将做为参数传给服务器上该对象类的建构函数,从而会在服务器端生成一个该名字的对象实例,如果对象名为空白,那么client将会使用boa提供的任何一个对象实例。

//-----------题外话-----------   注意,POA是对象实现与ORB之前的中介,是VBroker4带来的新东西,它的地位相当于VBroker3时代的BOA。详情请看VBroker4的文档或CORBA新版的文档。
  如果使用vbroker4进行corba应用开发的话,建议先把它的联机文档读一下,应为vbroker4实现的是corba2.3,有很多概念上的变化,而且联机文档对于corba的概念、VBroker的体系和原理、VBroker4下开发服务器与客户端的步骤都有详细讲解,在把这些理解之后再依本文的方法做bcb下的可视开发,就不会对wizard生成的那些古怪的代码感到迷惑了。嘻嘻,不要问我,我还没有看过,知道的都写在这里了。:-)
//-----------题外结束---------

  BCB的Use Corba Object Wizard可以自动完成在client里调用server上的corba object所需的准备工作,它可以通过Form的property、main()中的变量、class的成员来封装对服务器对象的引用。如果分析每种情况生成的代码,它最终都是通过以下几步完成任务的:
  1、定义一个~_var变量:StockServer_var FstockServer;
  2、将变量绑定到一个对象实例上:FstockServer = StockServer::_bind();
  注意,在Form和main()里使用时,绑定是由wizard生成的代码自动完成的,而在class里使用时你可以选择wizard是否生成绑定代码、是否自动引用生成绑定代码。

2000.3.29.

3、完成程序功能。

  对这个测试程序来说简单得很,在Form1上放一个Button1一个Edit1,把标题文字改一下:
Client Form1

  双击这个按钮,写上响应代码:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit1-$#@62;Text=stockServer-$#@62;getName();
}
4、测试。(本地)

  然后,File|Save All,再F9之,哈哈第一个CORBA程序运行成功了:
CORBA Client Run Result

  注意:记得在运行之前用start testserver.exe启动服务器哟。
  没有必要用start ...,直接运行就可以了 2000.3.29.

5、网络测试。按俺的理解,把客户拷贝到其它计算机上运行就可以了,待俺试来。

  哈哈,在客户端要有这么几个支持文件就可以:cp3245mt.dll orb_br.dll borlndmm.dll,还不知道是干什么用的。

  注:开发环境为PWinNT4 WS+SP3,网络测试在PWinNT4 WS及Win95 OSR2测试成功,编译选项使用release配置时,Win95在缺少dll时提示程序启动出错,而NT则提示断言失败,如果编译时用debug配置会告诉你缺哪个dll。


大功告成!

关注此文的读者还看过:

返回网页UI设计首页

共1页。 1
  • 1.BCB环境下CORBA实做之自己动手(下)

软件频道最新更新

热点推荐

天极服务|关于我们|About us|网站律师|RSS订阅|友情合作|加入我们|天极动态|网站地图|意见反馈|MSN/QQ上看天极
Copyright (C) 1999-2012 Yesky.com, All Rights Reserved 版权所有 天极网络