c++ - 如何让 AssImp 正常工作?

标签 c++ dll runtime-error assimp

我一直在尝试这样做大约一个星期,但无论如何都没有好处。我正在构建一个依赖 Assimp 加载模型的 .dll(UNDONE Engine .dll)。 .dll 编译和链接完全没有问题,但是当我尝试将它与某些应用程序一起使用时,我收到以下错误:

What is this?

'Test_Game.exe' 是我制作的应用程序,它使用了正在使用 assimp 的 .dll 库。

我从 sourceforge 存储库下载了 assimp。我得到了适用于 windows 的 3.0 版 SDK,安装了它,我做了一切必要的事情来链接项目。

下面是带有 .exe 的目录的样子:

enter image description here

我已经包含了正确的库位,即 32 位版本。

为什么它不起作用? Assimp 内部是否有一些内部错误阻止我使用它?还是我缺少什么?是否因为我从 dll 中使用它而导致问题?您能帮我完成正确安装和使用的步骤吗?我使用 Visual Studio 13。

编辑

在我的 exe 上运行 Dependency walker 后,我得到了这个:

enter image description here

我不太明白这意味着什么,但是,只是猜测,这是否意味着 assimp.exe 有一些未定义的函数?

最佳答案

depends.exe 告诉您的是 undone_engine.dll 的导入表包含 AssImp.exe 的条目,其中包含函数 ??0Importer@AssImp@@QAE@XZ 的条目和一些 friend 。然后 Windows 期望在 AssImp.exe 的 export 表中找到函数 ??0Importer@AssImp@@QAE@XZ 和 friend 。

Depends 还告诉你 AssImp.exe 的导出表中没有任何内容,这并不奇怪,因为 exe 很少导出任何内容。有趣的是,它还告诉您 assimp.exe 导入 assimp32.dll。

您可能打算与 assimp32.lib 链接,而不是 assimp.lib。 (@Dirk 在评论中暗示了这一点;我怀疑他已经搞定了。)您是否有一个 assimp32.lib 可以尝试链接而不是 assimp.lib?

我想知道 AssImp32.dll 是否从静态库 ButtGremlin.lib 中导入代码?/十二岁

关于c++ - 如何让 AssImp 正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28898204/

相关文章:

c++ - 多个互斥锁策略以及为什么库不使用地址比较

c# - Inno Setup - 具有依赖项的外部 .NET DLL

c# - 从生成的 C 代码创建 dll 库

arrays - 为什么 Rust 在运行时检查数组边界,而(大多数)其他检查发生在编译时?

jsf - 客户端 ID : j_id10 is duplicated in the faces tree. 组件

c++ - 我的程序因为检测到问题而停止工作?

c++ - 将自 1970 年以来经过的秒数转换为当前日期格式

c++ - 如何制作可变参数is_same?

.net - 在 64 位服务器操作系统上加载 32 位 dll

Android:在运行时从 SQLite 数据库中读取