zoukankan      html  css  js  c++  java
  • could not find plugin to read objects from file xxx.ive

    症状:
    VS2010,使用OSG2.9.6库的程序,Debug配置运行时,会提示找不到读ive文件的插件;
    Release下正常。

    说明:
    1.依赖项中的lib库已经检查过是d和非d区分的。
    2.编译通过,include和lib目录正确。
    3.windows 2003 x64 r2 with sp2
    4.VS2010,使用win32配置。
    5.osgversion 2.9.6

    代码如下:
    1 osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer();
    2 viewer->setSceneData(osgDB::readNodeFile("test.ive"));
    3 viewer->run();


    2010/10/21 update1

    使用$err,hr 获取到 osgDB / DynamicLibrary.cpp中 handle = LoadLibrary( libraryName.c_str() )的错误信息:

    0x000036b1 由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题
    libraryName的值确认是存在的osgdb_ived.dll。

    2010/10/21 update2

    用depends分析了osgdb_ived.dll和osgdb_ive.dll,发现前者依赖的zlib1d.dll木有找到MSVCR80D.DLL和MSJAVA.DLL,后者木有 找到MSJAVA.DLL。



    解决方法:
    使用和OSG的编译环境一样的环境(VS2010)编译生成新的zlib替换原来的zlib文件。(原先的zlib是vs2005sp装到顶的编译环境编译的,也就是c++版本是8.0.50727.4053)。


    附:
    听说是因为VS不能使用混合版本debug才会这样。
    甚为疑惑,如果这是真的话,就意味着如果程序LoadLibrary加载了使用其他版本的VC编译的dll库,就只能一直使用Release,不能调程序了?不能这么残忍吧!
    改天从装了vs2005的机器上拷贝727.4053版的msvcr80d.dll来验证一下。
  • 相关阅读:
    gitlab web端使用
    1、gitlab的理论知识
    git命令
    gitlab web客户端的使用
    jenkins
    jenkins pipeline
    nginx
    ELK(+Redis)-开源实时日志分析平台
    OpenStack构架知识梳理
    Linux 下的dd命令使用详解
  • 原文地址:https://www.cnblogs.com/mumuliang/p/1883380.html
Copyright © 2011-2022 走看看