查看: 1646|回复: 13

无法读取IVE文件问题

[复制链接]

该用户从未签到

发表于 2013-1-3 11:12:27 | 显示全部楼层 |阅读模式
手上有一程序,是在ActiveX 插件中读入IVE文件,然后在网页上显示一个立体场景。
程序调试时出现以下问题。
osg::ref_ptr<osg::Node> CPipeNetVRCtrl::ReadNodeFromPath(std::string strPath){

        osgDB::ReaderWriter::ReadResult rr = osgDB::Registry::instance()->readNode(strPath,osgDB::Registry::instance()->getOptions());
        osg::ref_ptr<osg::Node> node = new osg::Node;
        if(rr.validNode()){
                node = rr.takeNode();
                if(!node){
                        return NULL;
                }else
                        return node;
        }
        return NULL;
}
以上是都取路径代码,strPath中可以读到值(无论是相对路径还是HTTP路径均能接受到),但传到rr后会出现如下情况,
(1) http路径:http://127.0.0.1:80/pipenet/dimian.ive
  指针中会有如下警告:Warning: Could not find the .curl plugin to read from server."
(2)直接路径:“D:\\data\\dimian.ive”
((((rr)._message))._Bx)._Ptr,!         0xcccccc00 <错误的指针>        char *
指针中没有值
请问这个问题要如何解决
我的OSG是3.0的  在这个环境编译通过的 。

  

该用户从未签到

发表于 2013-1-4 09:44:41 | 显示全部楼层
提示不是已经很明确了么,您没有curl插件,osg需要它来从网络地址获取数据

该用户从未签到

 楼主| 发表于 2013-1-4 10:04:49 | 显示全部楼层
array 发表于 2013-1-4 09:44
提示不是已经很明确了么,您没有curl插件,osg需要它来从网络地址获取数据

感谢array,这个问题我后来发现了,在您的一篇文章中。我现在暂时先不做网络地址的,做本地地址的,但还是有个问题ReadNodeFromPath(std::string strPath)这个函数我需要调用多次,因为我有6个模型要Node加入GROUP,但这6个节点从来没有完全加载过,而且在不定的位置弹出中断,单步执行发现
osgDB::ReaderWriter::ReadResult rr = osgDB::Registry::instance()->readNode(strPath,osgDB::Registry::instance()->getOptions());
        osg::ref_ptr<osg::Node> node = new osg::Node;
        if(rr.validNode()){
                node = rr.takeNode();
                if(!node){
                        return NULL;
                }else
                        return node;
        }
        return NULL;
中  rr.validNode() 语句不时执行不过去,直接跳出了,这是为什么;有时执行到第二个 有时执行到第4个。
另外 curl插件是在OSG编译时指定的吧,编译完成后,再找个curl放到库中就不好使对吗?

十分感谢,我是初学OSG,程序是别人留下得,我现在无法恢复原先的效果,在老师的机器上可以用,但他的OSG是2.几的,我的3.0.0的,放在我这各种问题。

十分感谢

该用户从未签到

 楼主| 发表于 2013-1-4 16:47:57 | 显示全部楼层
补充: rr.validNode() 语句不时执行不过去 时,rr._status=FILE_NOT_FOUND ,但在加载之前的IVE文件时没有出现这种状况。是IVE文件的问题吗?
  • TA的每日心情
    开心
    2019-11-11 10:36
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2013-1-4 17:49:33 | 显示全部楼层
    报文件没有找到,你使用绝对路径试试吧。

    该用户从未签到

     楼主| 发表于 2013-1-4 19:36:25 | 显示全部楼层
    FreeSouth 发表于 2013-1-4 17:49
    报文件没有找到,你使用绝对路径试试吧。

    我使用的就是绝对路径,我一共需要加载6个IVE模型,加载第一个、第二个时都能找到,能加载上,到第三个时就出现这种情况,很奇怪。
    谢谢。

    该用户从未签到

     楼主| 发表于 2013-1-4 21:18:46 | 显示全部楼层
    本帖最后由 zouyinlong1988 于 2013-1-4 22:35 编辑

    希望知道解决办法的人帮忙解决,不胜感激,比较急。谢谢

    该用户从未签到

    发表于 2013-1-5 08:51:16 | 显示全部楼层
    什么玩意?

    该用户从未签到

     楼主| 发表于 2013-1-5 11:08:11 | 显示全部楼层
    我把我的问题写成文档了  说的清楚些 谢谢各位。

    错误说明.docx

    15.48 KB, 下载次数: 4, 下载积分: 威望 1

    该用户从未签到

     楼主| 发表于 2013-1-5 11:39:33 | 显示全部楼层
    订下  急用  谢谢

    该用户从未签到

    发表于 2013-1-7 09:12:52 | 显示全部楼层
    我猜测是您的程序存在不安全的线程操作引起的

    该用户从未签到

     楼主| 发表于 2013-1-8 09:47:37 | 显示全部楼层
    array 发表于 2013-1-7 09:12
    我猜测是您的程序存在不安全的线程操作引起的

    感谢您的答复,在debug下这个问题我一直无法解决,有的外文资料说可能是osgDB库有问题;后来我用release调试,这个问题就不存在了,我不知道为什么,新手,比较愁啊。因为程序之前不是我写的,具体的线程怎么进行的我还不了解,有待细细读过再说吧。
    问题暂时解决了,感谢各位的解答,谢谢。

    该用户从未签到

    发表于 2013-1-8 09:56:08 | 显示全部楼层
    不会是debug用的release库吧

    该用户从未签到

     楼主| 发表于 2013-1-9 15:22:02 | 显示全部楼层
    liuzhiyu123 发表于 2013-1-8 09:56
    不会是debug用的release库吧

    这个没有,release没有用动态库哈 呵呵
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

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

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

    联系我们

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