2015-03-06 8 views
13

Ich habe versucht, dies für etwa eine Woche zu tun, ohne irgendwie gut. Ich baue eine .dll (UNDONE Engine .dll), die von Assimp abhängt, um Modelle zu laden. Die DLL kompiliert und Links ohne Probleme überhaupt, aber wenn ich versuche, es mit einiger Anwendung zu verwenden, erhalte ich folgende Fehlermeldung:Wie bekomme ich AssImp um richtig zu funktionieren?

What is this?

‚Test_Game.exe‘ ist die Anwendung, die ich gemacht, dass Verwendungen Die .dll-Bibliothek, die Assimp verwendet.

Ich habe assimp aus dem sourceforge-Repository heruntergeladen. Ich habe die Version 3.0 SDK für Windows, installiert es und ich habe getan, was notwendig war, um das Projekt zu verknüpfen.

Hier ist, wie das Verzeichnis mit der EXE wie folgt aussieht:

enter image description here

ich die richtige Bitness des lib aufgenommen haben, das ist 32-Bit-Versionen.

Warum funktioniert es nicht? Gibt es einen internen Fehler in Assimp, der mich daran hindert, ihn zu benutzen? Oder fehlt mir etwas? Verursacht es Probleme, weil ich es von einer DLL verwende? Kannst du mir bitte die Schritte durchgehen, um richtig zu installieren und zu verwenden? Ich benutze Visual Studio 13.

EDIT

Nach Dependency Walker über meine exe ausgeführt wird, erhalte ich diese:

enter image description here

Und ich habe sehr wenig Ahnung von dem, was das bedeutet, aber , nur raten, bedeutet es, dass assimp.exe einige undefinierte Funktionen hat?

+0

Warum hat Ihre Engine-DLL eine Abhängigkeit zu assimp.exe? Sollte es nicht nur assimp32.dll sein? – Dirk

+0

@dirk Ich habe keine Ahnung warum. Ich habe die Assimp-Bibliothek nicht selbst gebaut. –

+0

aber Sie enthalten die Bibliothek. Das ist wahrscheinlich das Problem. Überprüfen Sie, wo Sie die Abhängigkeit in Ihrer IDE hinzufügen. – Dirk

Antwort

1

Was depends.exe sagt Ihnen, ist, dass undone_engine.dll Importtabelle enthält einen Eintrag für AssImp.exe, die einen Eintrag für die Funktion [email protected]@@[email protected] und einige Freunde enthält. Windows erwartet dann, die Funktionen [email protected]@@[email protected] und Freunde in der Export Tabelle von AssImp.exe zu finden.

Depends sagt Ihnen auch, dass es nichts in der Exporttabelle von AssImp.exe gibt, was nicht überraschend ist, da EXE nur selten etwas exportiert. Interessanterweise sagt es Ihnen auch, dass assimp.exe assimp32.dll importiert.

Sie möchten wahrscheinlich mit assimp32.lib verknüpfen, nicht assimp.lib. (@Dirk deutet darauf in den Kommentaren; ich vermute, er hat es genagelt.) Haben Sie eine assimp32.lib, die Sie versuchen könnten, anstatt assimp.lib zu verlinken?

Ich frage mich, ob AssImp32.dll Code aus der statischen Bibliothek ButtGremlin.lib importiert?/twelveyearold

Verwandte Themen