查看: 1368|回复: 6

这个为什么会出现编译错误?

[复制链接]

该用户从未签到

发表于 2009-12-31 09:33:16 | 显示全部楼层 |阅读模式
请问调用osgViewer::View::removeEventHandler()这个函数的时候,为什么会出现编译错误?
.\FreeDrawHandler.cpp(122) : error C2039: 'removeEventHandler' : is not a member of 'osgViewer::View'
        D:\libraries\include\osgViewer/View(34) : see declaration of 'osgViewer::View'

在调用osgViewer::View::addEventHandler()的时候没有错误

该用户从未签到

发表于 2009-12-31 09:40:57 | 显示全部楼层
好像可以通过EventHandlers& getEventHandlers()
得到std::list< osg::ref_ptr<osgGA::GUIEventHandler> >的引用

该用户从未签到

 楼主| 发表于 2009-12-31 09:45:08 | 显示全部楼层
很奇怪,看头文件可以找到这个函数声明啊

该用户从未签到

发表于 2009-12-31 09:52:11 | 显示全部楼层
应该不会有这种事情,我想这是您自己的代码的问题

该用户从未签到

发表于 2009-12-31 10:18:39 | 显示全部楼层
2.8里是没有这个接口的,不过刚在2.9.6里看了一下确实增加了这个接口,可能是你编译使用的头文件和你看到头文件是不同版本的吧

另外,提醒一下,这个接口一定不要在EventHandler的事件处理方法中调用,否则将导致崩溃(因为在eventHandlerList的循环里修改了这个list,导致迭代器失效)

该用户从未签到

发表于 2009-12-31 10:25:30 | 显示全部楼层
嗯,indif观察得很细致 不知有没有好的办法来修改OSG源代码,改善这一问题,呵呵

该用户从未签到

发表于 2009-12-31 15:25:22 | 显示全部楼层
indif好专业啊~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表