ice:stringToIdentity 2008-03-31
在了解ice这个开源的分布中间件应用过程中,由于目前的汉化的教程还只是1.3.0版本,
目前不断更新升级的ice版本已经有不少的修改。碰到stringToIdentity 函数的调用,
1.3.0 的教程都是用如下:
Ice::Identity myID = Ice::stringToIdentity(parent? IceUtil::generateUUID(): "RootDir");
的形式(这是教程中文件系统服务端的代码中出现的)。而测试环境又是新的版本,所以会出现编译不了的情况,
提示:
错误:‘stringToIdentity’ 不是 ‘Ice’ 的成员
google 了这个信息,发现很多人碰到该问题,最后查到官方论坛上的一个帖子,才搞清楚这个问题,
大概是:要用Ice::stringToIdentity 的形式,还要包含:Ice/IdentityUtil.h 头文件,但是在以后新的
版本中, stringToIdentity() 方法将会移到 Communicator 界面来实现。
尝试着先引入该头文件后,虽然可以编译通过,但是出现:
警告:‘stringToIdentity’ 已过时(于 /usr/include/Ice/IdentityUtil.h:18 声明)
的告警,而根据最新的教程:Ice-3.2.1.pdf 英文文档中 该代码是:
Ice::Identity myID = _adapter.getCommunicator()->stringToIdentity(parent? IceUtil::generateUUID(): "RootDir");
也是无法正常编译的。 最后只能将代码改为:
Ice::Identity myID = _adapter->getCommunicator()->stringToIdentity(parent? IceUtil::generateUUID(): "RootDir");
终于可以编译通过。
阅读(3595) | 评论(0) | 转发(0) |