查看: 1272|回复: 1

osgAL在MFC中使用的问题

[复制链接]

该用户从未签到

发表于 2010-3-27 23:07:49 | 显示全部楼层 |阅读模式
本帖最后由 include1224 于 2010-3-28 09:51 编辑

《编程入门指南》里的osgAL的示例,在控制台下已经运动成功了。但我这段代码搬到MFC下就老是报错。MFC实例用的是OSG自带的那个,代码添加在void cOSG::InitSceneGraph(void)函数里。请大家帮忙看看,或者说说在MFC使用osgAL中需要注意哪些问题?谢谢
  1. //声音管理初始化
  2.         osgAL::SoundManager::instance()->init(16);
  3. //设置声音的距离模式
  4. osgAL::SoundManager::instance()->getEnvironment()->setDistanceModel(openalpp::InverseDistance);
  5. //设置多普勒因子        osgAL::SoundManager::instance()->getEnvironment()->setDopplerFactor(1);
  6. osg::ref_ptr<osgAL::SoundNode> node_sound = createSound("../Sound/missile.wav");
  7. mRoot->addChild(node_sound.get());//为目标添加飞行声音节点

  8. 程序运动到createSound函数里面的第一句话就报错
  9. openalpp::Sample * sample = new openalpp::Sample(file.c_str());
  10. 但传进来的同样的文件路径在控制台下就可以运行。
复制代码

该用户从未签到

 楼主| 发表于 2010-3-30 20:41:46 | 显示全部楼层
问题已解决。下面是原因:
//osgAL需要的声音链接库
#if _DEBUG
#pragma comment(lib, "oalppd.lib")       //告诉编译器链接时使用debug版链接库
#pragma comment(lib, "osgALd.lib")
#else
#pragma comment(lib, "oalpp.lib")       //告诉编译器链接时使用release版链接库
#pragma comment(lib, "osgAL.lib")
#endif
release版本下可以正常运行,debug下不可以。是因为OpenAL 1.1 SDK安装路径下的bin/win32里面只有vorbis.dll,没有vorbisd.dll。所以不能够在debug下调试。
所以问题不是出在MFC上,而是调试模式上。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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