gpt4 book ai didi

c++ - OpenSceneGraph 未加载 openflight 插件

转载 作者:太空宇宙 更新时间:2023-11-04 12:51:13 25 4
gpt4 key购买 nike

我在使用简单的测试应用程序将 openflight (*.flt) 模型加载到 Openscenegraph 时遇到问题:

#include <osgDB/ReadFile>
#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{
// Setting the message level low so I can read Debug messages
osg::setNotifyLevel(osg::NotifySeverity::DEBUG_FP);

cout << "Opening flt file..." << endl;
osg::ref_ptr<osg::Node> mdl = osgDB::readNodeFile(argv[1]);
if (mdl != NULL) cout << "Opening flt file successful" << endl;
else cout << "Opening flt file failed" << endl;

return 0;
}

这应该通过将文件作为参数传递给应用程序来读取文件 pyramid.flt,该文件位于我的可执行目录中。但是,OSG 似乎无法加载所需的 Openflight 插件来真正读取文件。因此程序在尝试加载时返回 NULL。

奇怪的是,调试消息告诉我正在使用所需的 DLL,如下所示:

Opening flt file...
itr='C:\dev\CgfGen\build32\3dviewer\Debug'
FindFileInPath() : trying C:\dev\CgfGen\build32\3dviewer\Debug\osgPlugins-3.4.1\osgdb_openflightd.dll ...
FindFileInPath() : USING C:\dev\CgfGen\build32\3dviewer\Debug\osgPlugins-3.4.1\osgdb_openflightd.dll
DynamicLibrary::failed loading "osgPlugins-3.4.1/osgdb_openflightd.dll"
Warning: Could not find plugin to read objects from file "pyramid.flt".
Opening flt file failed

我的 pyramid.flt 在 Openflight 版本 16.5 中。我正在运行我的应用程序的调试版本。OSG 正在加载 osgdb_openflightd.dll

的调试版本

有人知道问题出在哪里吗?以及如何解决?

最佳答案

FindFileInPath() : USING C:\dev\CgfGen\build32\3dviewer\Debug\osgPlugins-3.4.1\osgdb_openflightd.dll

这只是意味着 OSG 已经发现了一个与它正在寻找的文件名相匹配的文件,但并不意味着它已经成功地使用了它。下一行:

DynamicLibrary::failed loading "osgPlugins-3.4.1/osgdb_openflightd.dll"

表示插件加载失败。这可能是因为插件自身的依赖项存在问题。您是否从头开始自己构建 OSG 和插件?

您或许可以使用 depends.exe 检查并查看您的 FLT 插件需要哪些其他 DLL。您还可以使用 SysInternals 的进程监视器之类的东西来查看 OSG 在

关于c++ - OpenSceneGraph 未加载 openflight 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49012609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com