ICE源代码编译出错及问题的解决

下载ICE源代码后,解压至C盘,直接双击打开all.dsw,然后遵照vs.net IDE的提示,把所有项目文件转换为.net下的solution及vcproj文件。然后build->build solution。

至此一切如常,然后在编译到ICE这个项目时,到了router.cpp文件时报错,错误显示如下:

c:/Ice-2.1.0/src/Ice/Router.cpp(408): error C2059: syntax error : '.'

......

仔细检查,没发现什么大碍,ice源程序的c++语法肯定没问题,该引用的头文件也都有了。

于是找到第一个报错的地方,把该方法以后的所有代码全部注释掉,该方法之类的其余代码也尽可能注释。出错处代码如下:

::IceInternal::Outgoing __out( __connection.get(), __reference.get(), __operation, static_cast< ::Ice:: OperationMode >(1), __context, __compress );

bool __ok =__out.invoke();

在第二句调用__out.invoke()时编译报错,注释此句后再编译一切正常。

尝试把__out改为_out,调用_out.invoke()一切正常,于是开始怀疑是此变量名有问题。改为__out1也正常。

因为__out是在一个方法之内定义的,即是一个局部变量,那么即使与全局变量或是该类里的实例或类变量重名,也不会受影响。google搜索__out, 发现有类似#define __out的语句存在,豁然开朗,应该是有宏与__out重名,打开vc.net的tools->options->projects->vc++ directories观察include files把几个怀疑对象去掉,重新编译,全部通过。最终确定有问题的include files目录为C:/Program Files/Microsoft Platform SDK for Windows XP SP2/Include/

ICE-3.7.4 最新安装文件msi文件,windowsICE常见报错 Exception in thread Ice.ConnectionRefusedException error = 0 at IceInternal.Network.doFinishConnect(Network.java:417) at IceInternal.TcpTransceiver.initialize(TcpTransceiver.java:33) at Ice.ConnectionI.initialize(ConnectionI.java:1536) at Ice.ConnectionI.socketReady(ConnectionI.java:1116) at Ice.ConnectionI$SocketReadyCallback.socketReady(ConnectionI.java:2299) at IceInternal.SelectorThread.run(SelectorThread.java:203) at IceInternal.SelectorThread$HelperThread.run(SelectorThread.java:273) Caused by: java.net.ConnectException: Connection refused at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:574) at IceInternal.Network.doFinishConnect(Network.java:393) ... 6 more 这种报错是ICE服务端没有起来,telnet服务端ICE的端口不通,无法建立socke 原帖地址:http://blog.csdn.net/zhenjing/archive/2009/09/10/4538705.aspx ICE常见编译和运行(异常)错误 收藏 在编译Ice应用相关的文件中,经常因为ice相关的文件包含关系而导致编译无法通过,此时的错误一般提示和handle.h相关。然而想要解决这样的错误,一般只需要把在无法编译成.o文件的.cpp文件中和ice文件相关的头文件放在该.cpp文件的起始行即可。也就是说,根据提示,把.cpp文件中最早提示导致出错的.h文件放在起始行。 ICE的常见运行错误(异常): 1 使用的地址错误,IP并非本地IP: 发生在初始化服务器时,没办法初始化adapter. 错误信息: (IP错误) ./test: Network.cpp:475: Ice::SocketException: socket exception: Cannot assign requestedaddress 另外: 已经启动服务器后又重新启动: 发生在初始化服务器时,没办法初始化adapter. 错误信息: (port已经被使用) ./server: Network.cpp:475:Ice::SocketException: socket exception: Address already in use ///stringtoProxy对于任何string都是有效的,均可以生成相应代理,但是该代理是否有效是无法保证的. 如果代理无效,也就是说根本就没有这样的adapter或者对象,那么使用Checkcast或直接用该代理调用相应对象接口均会抛异常. 下面对每种情况加于分析. 2 使用的代理IP错误: 发生在使用代理调用接口的时候 原因: 根本就没有相应的通讯器存在. 错误信息: (使用的代理IP错误) 抛出异常: Ice::ConnectFailedException(需要几秒, 需要进行搜索) 3 使用的代理端口错误,两边不一致 : 发生在使用代理调用接口的时候 原因: 存在通讯器,但是不存在相应的对象适配器. 错误信息: 抛出异常: Ice::ConnectionRefusedException(很快, 端口没有被启用引起的,无人监听该端口) 4 使用的对象名字不正确: 发生在使用代理调用接口的时候 原因: 能够找到相应的对象适配器,但是该对象适配器中无法找到相应的对象 错误信息: 抛出异常: Ice::ObjectNotExistException(很
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值