查看: 1292|回复: 8

请教

[复制链接]

该用户从未签到

发表于 2010-7-14 16:40:52 | 显示全部楼层 |阅读模式
osg程序设计上的第一个例子
#include <osgDB/ReadFile>
#include <osgViewer/Viewer>
void main()
{
osgViewer::Viewer viewer;
viewer.setSceneData(osgDB::readNodeFile("glider.osg"));
viewer.realize();
    viewer.run();
}
调试的时候出现
hw.exe 中的 0x003ab49b 处未处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突
初学者请教什么原因 谢谢了

该用户从未签到

 楼主| 发表于 2010-7-14 16:51:13 | 显示全部楼层
提示是viewer.run()有错误。

该用户从未签到

发表于 2010-7-14 16:51:30 | 显示全部楼层
这个教程满老了,应该是osgViewer::Viewer viewer; 这个错了,viewer的构造函数好象是protect的,用ref_ptr申请地址应该可以了。你改成osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer();应该就好了。viewer.realize(); 和viewer.run(); 改成viewer->realize();
    viewer->run();

该用户从未签到

 楼主| 发表于 2010-7-14 16:54:54 | 显示全部楼层
#include <osgDB/ReadFile>
#include <osgViewer/Viewer>
void main()
{
        osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer();
        viewer->setSceneData(osgDB::readNodeFile("glider.osg"));
        viewer->realize();
    viewer->run();
}

该用户从未签到

 楼主| 发表于 2010-7-14 16:56:03 | 显示全部楼层
是上面这样吗?还是那个错误呢,是我的电脑有问题吗,麻烦你能运行一下吗,谢谢

该用户从未签到

 楼主| 发表于 2010-7-14 16:58:49 | 显示全部楼层
3# 答案??
还是那个错误呢

该用户从未签到

发表于 2010-7-14 18:25:58 | 显示全部楼层
程序没有错误啊,你看看你的环境是不是有什么问题?

该用户从未签到

发表于 2010-7-14 22:15:50 | 显示全部楼层
您的环境应该有问题吧,,例如VS2005需要打SP1的补丁之类的,OSG库不是您自己编译的,从而与您的环境不匹配,等等
  • TA的每日心情
    开心
    2019-11-11 10:36
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2010-7-14 23:31:12 | 显示全部楼层
    这个教程满老了,应该是osgViewer::Viewer viewer; 这个错了,viewer的构造函数好象是protect的,用ref_ptr申请地址应该可以了。你改成osg::ref_ptr viewer = new osgViewer::Viewer();应该就好了。viewer.realize() ...
    答案?? 发表于 2010-7-14 16:51

    那样写是可以的,如果那样不行,new也是行不通的,所以构造函数不会是protect的。
    环境问题,把OSG安装包重装一下,适配你的VS就可以了。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

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

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

    联系我们

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