如何让AssImp正常工作?

时间:2015-03-06 11:51:36

标签: c++ dll runtime-error assimp

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

What is this?

'Test_Game.exe'是我创建的应用程序,它使用的是使用assimp的.dll库。

我从sourceforge存储库下载了assimp。我得到了适用于Windows的3.0版SDK,安装了它,我确实做了一些非常有用的东西,以便将项目链接起来。

以下是带有.exe的目录:

enter image description here

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

为什么不起作用? Assimp中是否有一些内部错误阻止我使用它?还是有什么我想念的?它是否会导致问题,因为我从dll使用它?你能指导我完成正确安装和使用的步骤吗?我使用visual studio 13。

修改

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

enter image description here

我对这意味着什么并不了解,但是,只是猜测,这是否意味着assimp.exe有一些未定义的功能?

1 个答案:

答案 0 :(得分:1)

depends.exe告诉你的是,undone_engine.dll的导入表包含一个AssImp.exe条目,其中包含函数??0Importer@AssImp@@QAE@XZ和一些朋友的条目。然后,Windows希望在AssImp.exe的 export 表中找到函数??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导入代码? / twelveyearold