一个ICE的问题,欢迎大家进来探讨!

热爱生活 2011-05-10 12:22:39
icestorm 手册中有个实例。我在实现过程中出现了问题!

C/C++ codemodule rpt{
struct Measurement
{
string tower; // tower id
float windSpeed; // knots
short windDirection; // degrees
float temperature; // degrees Celsius
};
interface Monitor {
void report(Measurement m);
};
};



在实现发布订阅时:
#include <Ice/Ice.h>
#include <IceStorm/IceStorm.h>
#include <Monitor.h>

int main(int argc, char* argv[])
{

Ice::ObjectPrx obj = communicator->stringToProxy(
"IceStorm/TopicManager:tcp -p 9999");
IceStorm::TopicManagerPrx topicManager =
IceStorm::TopicManagerPrx::checkedCast(obj);
IceStorm::TopicPrx topic ;
while (!topic){
try {
topic = topicManager->retrieve("Weather");
} catch (const IceStorm::NoSuchTopic&){
Try{
topic = topicManager->create("Weather");
} catch (const IceStorm::TopicExists&){
// Another client created the topic }
}
}
Ice::ObjectPrx pub = topic->getPublisher()->ice_oneway();
MonitorPrx monitor = MonitorPrx::uncheckedCast(pub);
while (true) {
Measurement m = getMeasurement();
monitor->report(m);
}

}

IceStorm::TopicPrx topic;
while(!topic) {
try {
topic = topicManager->retrieve("Weather");
} catch (const IceStorm::NoSuchTopic&){
try {
topic = topicManager->create("Weather");
} catch (const IceStorm::TopicExists&) {
// Another client created the topic }
}
}

Ice::ObjectPrx pub = topic->getPublisher()->ice_oneway();
MonitorPrx monitor = MonitorPrx::uncheckedCast(pub);

while (true) {
Measurement m = getMeasurement();
monitor->report(m);
}

对个体m = getMeasurement();出现了错误error C3861: “getMeasurement”: 找不到标识符??
而手册中没有提到这个函数!!怎么解决??
请高手赐教!
...全文
156 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
热爱生活 2011-05-11
  • 打赏
  • 举报
回复
有没有人知道啊?
热爱生活 2011-05-10
  • 打赏
  • 举报
回复
终于通过了!
我是这样改的:
/* Measurement m = getMeasurement();*/
Measurement m ;

可是又出现了下面的问题!
令人困惑!
client.obj : error LNK2019: 无法解析的外部符号 "class IceProxy::Ice::Object * __cdecl IceInternal::upCast(class IceProxy::rpt::Monitor *)" (?upCast@IceInternal@@YAPAVObject@Ice@IceProxy@@PAVMonitor@rpt@4@@Z),该符号在函数 "public: __thiscall IceInternal::ProxyHandle<class IceProxy::rpt::Monitor>::~ProxyHandle<class IceProxy::rpt::Monitor>(void)" (??1?$ProxyHandle@VMonitor@rpt@IceProxy@@@IceInternal@@QAE@XZ) 中被引用
1>client.obj : error LNK2001: 无法解析的外部符号 "private: virtual class IceInternal::Handle<class IceDelegateM::Ice::Object> __thiscall IceProxy::rpt::Monitor::__createDelegateM(void)" (?__createDelegateM@Monitor@rpt@IceProxy@@EAE?AV?$Handle@VObject@Ice@IceDelegateM@@@IceInternal@@XZ)
1>client.obj : error LNK2001: 无法解析的外部符号 "private: virtual class IceInternal::Handle<class IceDelegateD::Ice::Object> __thiscall IceProxy::rpt::Monitor::__createDelegateD(void)" (?__createDelegateD@Monitor@rpt@IceProxy@@EAE?AV?$Handle@VObject@Ice@IceDelegateD@@@IceInternal@@XZ)
1>client.obj : error LNK2001: 无法解析的外部符号 "private: virtual class IceProxy::Ice::Object * __thiscall IceProxy::rpt::Monitor::__newInstance(void)const " (?__newInstance@Monitor@rpt@IceProxy@@EBEPAVObject@Ice@3@XZ)
热爱生活 2011-05-10
  • 打赏
  • 举报
回复
测试没有通过啊!
还出现了一大推问题。。。
头疼啊!
xspace_time 2011-05-10
  • 打赏
  • 举报
回复
不是已经发过了么,随便搞个来试下
struct Measurement
{
string tower; // tower id
float windSpeed; // knots
short windDirection; // degrees
float temperature; // degrees Celsiu
struct Measurement getMeasurement();
}*lpMeasurement;
struct Measurement getMeasurement()
{
return lpMeasurement;
}

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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