我一直试图这样做约一个星期,但没有任何好处。我正在建立一个依赖于Assimp的.dll(UNDONE Engine .dll)来加载模型。 .dll完全可以编译和链接,但是当我尝试将其用于某些应用程序时,出现以下错误:
“Test_Game.exe”是我制作的使用使用assimp的.dll库的应用程序。
我从sourceforge存储库下载了assimp。我获得了适用于Windows的3.0版SDK,并进行了安装,然后我做了一切必要的工作来链接该项目。
这是带有.exe的目录的样子:
我包括了lib的正确位数,即32位版本。
为什么不起作用? Assimp内部是否有一些内部错误会阻止我使用它?还是我想念的东西?因为我是从dll使用它,是否会引起问题?您能帮助我完成正确安装和使用的步骤吗?我使用Visual Studio 13。
编辑
在我的exe上运行Dependency Walker之后,我得到了:
而且我几乎不知道这意味着什么,但是,仅凭猜测,这是否意味着assimp.exe具有一些未定义的功能?
最佳答案
Depends.exe告诉您的是,undone_engine.dll的导入表包括AssImp.exe的条目,其中包括函数??0Importer@AssImp@@QAE@XZ
和一些 friend 的条目。然后,Windows希望在AssImp.exe的导出表中找到??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/