懂corba的高手请进来

yongshuan 2006-11-11 10:03:39
我的idl定义成下面的形式
module Sub {
struct Param{
string str;
long begpos;
long endpos;
string errmes;
};
interface Getstring{
Param getstruct();
};
interface stringmaker{
Getstring Trans(in Param oldStr);
};

};
我实现接口stringmaker(我写成了stringmakerImpl类),然后在服务器文件中我需要stringmakerImpl类的一个实例,写法如下: stringmakerImpl managerServant;
在编译时系统却提示下面出错信息:
“[C++ Error] exam.cpp(35): E2352 Cannot create instance of abstract class 'stringmakerImpl'
[C++ Error] exam.cpp(35): E2353 Class 'stringmakerImpl' is abstract because of 'POA_Sub::stringmaker::Trans(long) = 0'”
我的实现类stringmakerImpl写法如下:
class stringmakerImpl : public virtual POA_Sub::stringmaker,
public virtual PortableServer::ServantBase
{
public:
stringmakerImpl(){}
Sub::Getstring_ptr Trans(Sub::Param_ptr oldstruct)
{
char* oldstr ;
CORBA::Long begpos;
CORBA::Long endpos;
oldstr = oldstruct->str;
begpos = oldstruct->begpos;
endpos = oldstruct->endpos;
......
这是什么原因呢 难道结构体不能作为函数的参数进行传递吗?
如果能传递,具体的写法是什么样的呢?
谢谢
...全文
174 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
LuoGD 2006-11-14
  • 打赏
  • 举报
回复
楼主要了解什么是corba,
corba主要指CORBA Server,每一个interface 实现后是作为一个CORBA Server运行,等待客户断访问调用,只提供服务,由相应CORBA中间件负责安装提供这些服务,在执行ORB.Run(),进入等待状态,等待Client访问。
Client端也通过idl文件生成Client访问代码,通过bind方法获得CORBA Server在本地的一个影射,从而才能调用你的Trans远程方法

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧