查看: 860|回复: 1

TravelManipulator.DLL 问题

[复制链接]

该用户从未签到

发表于 2013-1-25 23:00:27 | 显示全部楼层 |阅读模式
本帖最后由 1162810317 于 2013-1-25 23:15 编辑

最近在学习osg的漫游部分,其中《step into ,,,,,》(可能是版本比较老)书中的TravelManipulator.DLL部分代码编译不能通过了,但又不知道该怎么解决,所以想请教下大神们。
TravelManipulator * TravelManipulator::TravelScene(osg::ref_ptr
<osgViewer::Viewer> viewer)
{
  //可以获得并使用系统提供的浏览方式,这个静态函数用于初始化与激活,在类静态函数中初始化,
//这属于C++的知识,把析构函数设置为保护就是……,自己看吧
  TravelManipulator* camera = new TravelManipulator;
  //得到像机的ID

  camera->m_nID = viewer-> addCameraManipulator(camera); //这边不能通过,我改成了setCameraManipulator(camera); 还是不行  
  //TEMP
  camera->m_pHostViewer = viewer;
  return camera;   
}
//激活所选的漫游方式
/*void TravelManipulator::Active(void)
{
  m_pHostViewer->getCameraManipulator(m_nID); //这边也不行
}  */
我刚开始把这两处注释掉,下面显示编译成功,可是问题是出现后面错误“unable to start program!”
最后就是书上没有说其他环境的配置只有示
例九:编写 TravelManipulator.DLL
第一步:新建&#61664;项目&#61664;WIN32/WIN32 控制台应用程序,项目名称填入:TravelManipulator 在应用程序设
置中选 DLL 与空项目选项。
第二步:在菜单项目&#61664;属性&#61664;配置属性&#61664;链接器->命令行中添加下列 LIB:  OpenThreadsWin32d.lib
Producerd.lib osgd.lib osgDBd.lib osgFXd.lib osgGAd.lib osgParticled.lib osgProducerd.lib osgSimd.lib
osgTerraind.lib osgTextd.lib osgUtild.lib
第三步:菜单项目&#61664;添加类,类名填入 TravelManipulator,基类填入:osgGA::Manipulator
点击确定。
实际编译不通过 ,我自己按其他程序一样添加了其他依赖后才通过,有影响吗???

该用户从未签到

 楼主| 发表于 2013-1-27 00:00:44 | 显示全部楼层
问题解决了,找到一篇很久以前的帖子!
完整的代码如下:
Travel *Travel::TravelToScence(osg::ref_ptr<osgViewer::Viewer> viewer)  
{  
    Travel* camera = new Travel();  
  
    viewer->setCameraManipulator(camera);  
  
    camera->m_pHostViewer = viewer;  
  
    return camera;
}   
:lol:lol真是山重水复疑无路,柳暗花明又一村啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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