首先你要掌握CORBA的基本架构,如果你对CORBA还不熟悉的话,我建议你去买本书看看,我觉得比较好的有《基于C++ CORBA高级编程》(80.00)。 你将一个C++写的dll改成CORBA环境下让java来调用,首先,你应该将dll提供的接口提出来,形成一个符合CORBA的idl的接口文件,然后用idl for C++的编译器将idl编译形成服务端,然后将其实现。然后,使用idl for java的编译器将idl编译形成客户端,然后实现即可。具体细节需要你先去了解CORBA的一些基础知识。而且现在CORBA的实现有好几家如:VisiBroker、omniORB等,不过他们都是按照CORBA的标准去实现的,只是有一些地方不同,这需要看相应的文档。我提醒你,你要根据你的项目需求来选择采用jni还是CORBA来实现,如果你没有分布式的需求,你就没有必要用CORBA来实现,因为jni的实现的效率比同等情况下的CORBA环境的效率要高,如果接口要传输的数据量比较大的话,表现尤为明显。应为CORBA需要对数据进行打包和解包的一些列的工作。好了,太多我也不多说的,希望对你又帮助。
很感谢,知道了不少,不知道的更多了: 1。VisiBroker在jbuilder里面有没有提供呢? 2。idl for c++编译器我没有,“用idl for C++的编译器将idl编译形成服务端,然后将其实现”实现是用原来的dll实现,这其中好象比较模糊,需要修改原来的C++代码吗? 3。如何把dll提供到命名服务器里面呢? 4。我使用jdk里面的tnameserv做jndi可以吗?
用java idl能否使用C++代码呢?
我现在有一个C++写的dll,想改在corba环境
下让java调用,如何做呢
你将一个C++写的dll改成CORBA环境下让java来调用,首先,你应该将dll提供的接口提出来,形成一个符合CORBA的idl的接口文件,然后用idl for C++的编译器将idl编译形成服务端,然后将其实现。然后,使用idl for java的编译器将idl编译形成客户端,然后实现即可。具体细节需要你先去了解CORBA的一些基础知识。而且现在CORBA的实现有好几家如:VisiBroker、omniORB等,不过他们都是按照CORBA的标准去实现的,只是有一些地方不同,这需要看相应的文档。我提醒你,你要根据你的项目需求来选择采用jni还是CORBA来实现,如果你没有分布式的需求,你就没有必要用CORBA来实现,因为jni的实现的效率比同等情况下的CORBA环境的效率要高,如果接口要传输的数据量比较大的话,表现尤为明显。应为CORBA需要对数据进行打包和解包的一些列的工作。好了,太多我也不多说的,希望对你又帮助。
1。VisiBroker在jbuilder里面有没有提供呢?
2。idl for c++编译器我没有,“用idl for C++的编译器将idl编译形成服务端,然后将其实现”实现是用原来的dll实现,这其中好象比较模糊,需要修改原来的C++代码吗?
3。如何把dll提供到命名服务器里面呢?
4。我使用jdk里面的tnameserv做jndi可以吗?
1 VisiBroker在jbuilder里面有
2 对需要修改原来的代码,你需要按照CORBA的要求来实现,dll是COM的规范,这两者有很大的差异
3 CORBA的实现中有相应的文档
4 可以,jdk中的tnameserv是sun的一个CORBA的命名服务
visibroker for java或者tnameserv可以
支持C++服务端吗?是否应该下一个VisiBroker for C++呢?
idl for c++编译器从哪里下载呢?
服务器来配置呢?是否应该下一个VisiBroker for C++呢?
还有什么可以选择?
[email protected]
我编译例子不通过,大概是bcb的make有问题,
他使用OSAgent的,没有通过jndi服务是吗?
OSAgent是种什么方式呢?可以在分布式环境运行吗?C:\bank_agent>make -f Makefile.cpp
MAKE Version 5.2 Copyright (c) 1987, 2000 Borland
Error Makefile.cpp 2: Command syntax error
*** 1 errors during make ***