我正在运行一个使用ACE TAO的多程序项目。我设置了环境变量并编译了ACE_TAO环境。然后,我将tao_cosnaming.exe复制到我的项目运行目录中,并使用.bat启动命名服务。
如果我直接启动这些程序,它们运行得很好,但是当我在调试模式下调用obj = orb->resolve_initial_references("NameService")时,它们不能正确地获得"NameService“。(我无法运行obj->_non_existent(),它抛出了一个错误)。
这似乎是因为命名服务是作为远程服务实现的。当我调用obj = orb->invoke resolve_initial_references(" RootPOA ")时,一切都很好,因为RootPOA是本地对象,所以obj->__existent()立即返回。
.bat文件如下所示:
cd /D %DTAX_RUN_DIR%
tao_cosnaming -ORBEndPoint iiop://%DTAX_NAME_SERVICE_HOST%DTAX_RUN_DIR和DTAX_NAME_SERVICE_HOST是环境变量。DTAX_RUN_DIR是项目运行目录和DTAX_NAME_SERVICE_HOST=169.254.51.81:10493
有人能分享一些关于哪里出了问题的想法吗?谢谢!
发布于 2016-09-26 23:09:43
仅仅使用您提供的信息很难给出明确的解决方案,但在我的项目中,我需要将"-c“(不带引号)作为命令参数传递,以便我可以对其进行调试,也许您也需要这样做。在Visual Studio的项目属性中,您可以在Properties/Debugging中找到Command arguments字段。
https://stackoverflow.com/questions/18931020
复制相似问题