13

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

这是什么?

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

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

以下是带有 .exe 的目录的外观:

在此处输入图像描述

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

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

编辑

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

在此处输入图像描述

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

4

1 回答 1

1

depends.exe 告诉你的是 undone_engine.dll 的导入表中包含 AssImp.exe 的入口,其中包含函数??0Importer@AssImp@@QAE@XZ和一些朋友的入口。然后 Windows 期望在AssImp.exe的导出??0Importer@AssImp@@QAE@XZ表中找到函数和朋友。

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

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

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

于 2015-06-10T21:48:23.440 回答