2015-03-06 3 views
13

Я пытался сделать это в течение недели, не имея ничего хорошего. Я создаю .dll (UNDONE Engine .dll), который зависит от того, как Assimp загружает модели. .dll компилируется и без каких-либо проблем на всех, но когда я пытаюсь использовать его с некоторым приложением, я получаю следующее сообщение об ошибке:Как заставить AssImp работать правильно?

What is this?

«Test_Game.exe» является приложением я сделал, что использование библиотека .dll, использующая обрезку.

Я загрузил осыпь из репозитория sourceforge. Я получил SDK версии 3.0 для Windows, установил его, и я сделал все, что было необходимо, чтобы связать проект.

Вот как каталог с расширением .exe выглядит следующим образом:

enter image description here

Я включил правую разрядность Lib, то есть 32-битные версии.

Почему это не работает? Есть ли внутренняя ошибка внутри Assimp, которая мешает мне использовать ее? Или что-то мне не хватает? Это вызывает проблемы, потому что я использую его из dll? Можете ли вы, пожалуйста, пройти через шаги по установке и использованию должным образом? Я использую Visual Studio 13.

EDIT

После запуска Dependency Walker над моим ехе, я получаю это:

enter image description here

И я очень меньше о том, что это значит, но , просто угадать, означает ли это, что у assimp.exe есть некоторые неопределенные функции?

+0

Почему у вашего dll engine есть зависимость от assimp.exe? Разве это не просто assimp32.dll? – Dirk

+0

@ dirk Я понятия не имею, почему. Я сам не строил библиотеку аффимпа. –

+0

, но вы включаете библиотеку. То вероятно где проблема. Поэтому проверьте, где вы добавляете зависимость в свою среду IDE. – Dirk

ответ

1

В чем именно зависит .exe сообщает, что таблица импорта undone_engine.dll содержит запись для AssImp.exe, которая содержит запись для функции [email protected]@@[email protected] и некоторых друзей. Затем Windows ожидает найти функции [email protected]@@[email protected] и друзей в export таблица AssImp.exe.

Зависит также говорит вам, что ничего нет в таблице экспорта AssImp.exe, что неудивительно, поскольку exe редко экспортирует что-либо. Интересно, что это также говорит вам, что assimp.exe импортирует assimp32.dll.

Возможно, вы намереваетесь связываться с assimp32.lib, а не assimp.lib. (@Dirk намекает на это в комментариях, я подозреваю, что он прибил его.) У вас есть assimp32.lib, который вы могли бы попытаться связать, а не assimp.lib?

Удивительно, импортирует ли AssImp32.dll код из статической библиотеки ButtGremlin.lib?/twelveyearold

Смежные вопросы