D7 CORBA(100分)

  • 主题发起人 主题发起人 憨憨
  • 开始时间 开始时间

憨憨

Unregistered / Unconfirmed
GUEST, unregistred user!
以前的CORBA程序,使用CORBA数据模块,要升级到D7,该怎么做?
请详细点。
 
好象比较麻烦
就因为这样,所以我现在还是在用D6
有没有人转过?
 
在Delphi6中可以使用CorbaConnection,在Delphi7中已经没有了,
实际上在Delphi6是使用一种类似DCOM的TypeLibrary的方式,以绕过IDL,
不是标准的Corba,现在的Corba是完全IDL的。
 
另外:
1.我分别用D6和D7的TLB编辑器输出同一个TLB的IDL,为什么内容不一样呢?
2.用Tools|Regenerate CORBA IDL Files 编译IDL,总是报告错误:
Faild to create process. 系统找不到指定的文件
 
“Faild to create process. 系统找不到指定的文件”
到底是指什么文件找不到,有没有哪位遇到过,说一说呀

急啊
 
怎么没有人说话了呢
 
我想知道
 
Type Library 编辑器可以输出三种不同的IDL,呵呵你用的是哪一个呀.
 
自己写IDL,D7输出的不是CORBA的IDL
 
to testnet,
D7输出的不是CORBA的IDL
那输出的是什么?
 
我也想听。
 
哪个IDL叫什么我也不知,再进来给点资料大家
升级问题
The TypeLib interface Export option, TCorbaConnection,
CorbaDataModule, and CorbaObject components have been
removed from Delphi. They were based on VisiBroker 3.3
Orb, which is no longer shipped with Delphi.

To convert a VisiBroker 3.3 tlb file to a CORBA IDL file,
use the tlibimp utility from the command line, for example:

C:/ *SomePath* >tlibimp -Ic+ MyTLBFile.tlb

Tlibimp generates the following files:

* MyTLBFile_TLB.dcr
* MyTLBFile_TLB.pas
* MyTLBFile.idl

Next, choose File | New | Other and click the Corba tab
to access either the CORBA Client or Server wizard.
Specify the newly created IDL file in the wizard to generate
the stubs and skeletons. Now transfer the function code from the
VisiBroker 3.3 application to the new VisiBroker 4.5 application.


解决方法
All of the functionality to recreate the removed components
is still available in Delphi 7, however, you will need to
create your own wrappers. For a code example that uses CORBA
and Midas WITHOUT using the removed components, see Midas XML in the
following directory:

C:/Program Files/Borland/Delphi7/Demos/Corba/IDL2PAS
里面的内容的内量其实就是叫你定义一个方法,以Corba的any类型(相当于Variant)返回数据
{
//注意这里,经常会见到有一些关于CORBA与BDE帖子,这个地方可以参考
Look at the DMPooler module. This shows a thread safe technieque for pooling
database connections. Instead of getting a new connection for every database
request, this module creates a pool of connections and reuses them. That way
BDE resourse errors are avoided.
}


如果觉得自己写一个IDL太烦,可以用Rose,可能还有一些别的工具 方法如下
1选择new ,在Create New Model对话框中选cancel
2在中间的竖条中选Interface画在右边的纸上
3右键New Interface选open standard specification
5在Operations中增加一个方法,确认
6选Tools中的Corba/syntax check,如果在下面的log下没出现Error,进行下一步
7选Tools中的Corba/Generate code
8按Edit新增一个保存路径,如D:/CORBA/(好像根目录会出错),选中两边,按assign
现在在D:/CORBA/下会出现一个NewInterface.idl,内容
//Source file: D:/CORBA/NewInterface.idl

#ifndef __NEWINTERFACE_DEFINED
#define __NEWINTERFACE_DEFINED

/* CmIdentification
%X% %Q% %Z% %W% */

interface NewInterface {
/*
@roseuid 3E968C2100BB */
any opname ();

};

#endif
9现在打个Delphi,选Tools/regenerate Corba IDL files,按Add,增加NewInterface.idl,按Generate,这时
D:/CORBA/中如出现Delphi Corba
的c ,i ,s Impl,4个pas文件,现在可以按照传统的方式编码了,可以用
Corba Client application ,Corba Server application向导完成这个功能
unit NewInterface_i;

{This file was generated on 11 Apr 2003 09:44:02 GMT by version 03.03.03.C1.A2}
{of the Inprise VisiBroker idl2pas CORBA IDL compiler. }

{Please do not edit the contents of this file. You should instead edit and }
{recompile the original IDL which was located in the file }
{D:/CORBA/NewInterface.idl. }

{Delphi Pascal unit : NewInterface_i }
{derived from IDL module : default }



interface

uses
CORBA;

type
NewInterface = interface;

NewInterface = interface
['{70955352-5D2C-851E-69E3-D665A093A60F}']
function opname : Any;
end;


 
试一下delhpi7自带的demo程序吧,我试过了,之前遇到过一些问题不能运行,现在可以了
 
D7可以输出标准的MSIDL语句。
用D7开发Cobra。
一,写IDL。用文本编辑器即可。
二,用D7的工具IDLTOPAS把接口转换到Delphi语言。
三,实现转换出来的代码。
四,运行。
运行需要VisiBroker的一套东西。最少需要的是BisiBroker Osagend智能代理。
 
后退
顶部