查看: 634|回复: 2

mfc dll文件保存问题?

[复制链接]

该用户从未签到

发表于 2014-12-30 16:23:28 | 显示全部楼层 |阅读模式
        setlocale( LC_ALL, "chs" );
        //osgDB::writeNodeFile(*(mt.get()),"E:\\4\\111.osg");//strfile.GetBuffer(0));//
        // TODO: 在此添加调度处理程序代码
        //创建一个叶节点对象
        osg::ref_ptr<osg::Geode> geode = new osg::Geode();

        //创建一个几何体对象
        osg::ref_ptr<osg::Geometry> geom = new osg::Geometry();

        //创建顶点数组,注意顶点的添加顺序是逆时针的
        osg::ref_ptr<osg::Vec3Array> v= new osg::Vec3Array();
        //创建纹理坐标
        osg::ref_ptr<osg::Vec2Array> vt= new osg::Vec2Array();
                //创建颜色数组
        osg::ref_ptr<osg::Vec4Array> vc = new osg::Vec4Array();
                //创建法线数组
        osg::ref_ptr<osg::Vec3Array> nc = new osg::Vec3Array();
        for(double i=0;i<1000;i++)
        {
                v->push_back(osg::Vec3(i,0.0f,0.0f)) ;
                v->push_back(osg::Vec3(i+1,0.0f,0.0f)) ;
                v->push_back(osg::Vec3(i,1.0f,0.0f)) ;

                v->push_back(osg::Vec3(i+1,0.0f,0.0f)) ;
                v->push_back(osg::Vec3(i+1,1.0f,0.0f)) ;
                v->push_back(osg::Vec3(i,1.0f,0.0f)) ;

                vc->push_back(osg::Vec4(1.0f,0.0f,0.0f,1.0f));
                vc->push_back(osg::Vec4(1.0f,0.0f,0.0f,1.0f));

                nc->push_back(osg::Vec3(0.0f,0.0f,1.0f));
                nc->push_back(osg::Vec3(0.0f,0.0f,1.0f));
        }
        //设置顶点数据
        geom->setVertexArray(v.get());
            //设置颜色数组
        geom->setColorArray(vc.get());
        //设置颜色的绑定方式为单个顶点
        geom->setColorBinding(osg::Geometry::BIND_OVERALL);
        //设置法线数组
        geom->setNormalArray(nc.get());
        //设置法线的绑定方式为全部顶点
        geom->setNormalBinding(osg::Geometry::BIND_OVERALL);

        //添加图元,绘图基元为四边形
        geom->addPrimitiveSet(new osg:: DrawArrays(osg:: PrimitiveSet::TRIANGLES,0,v->size()));       
        geode->addDrawable(geom.get());
         osgDB::writeNodeFile(*(geode.get()),"F:\\11.osg");
上面代码在mfc sdi下运行并输出11.osg没有任何问题,但是到了在mfc dll下封装后c#调用 就出现问题,输不出11.osg.
这样的问题谁遇到过?如何解决?

该用户从未签到

发表于 2014-12-30 16:53:35 | 显示全部楼层
这个应该和MFC和C#的原因,你还是查一下你的逻辑吧,比如你的写文件的时候,看看模型数据和路径对吗

该用户从未签到

 楼主| 发表于 2014-12-30 17:53:30 | 显示全部楼层
低级错误,扩展dll没有拷贝过去。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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