Проблемы с использованием DLL в DLL, созданной JNI

Я работаю над проектом Java, в котором я должен использовать стороннюю DLL (скажем, abc.dll). Поэтому я создал собственный заголовочный файл, используя JNI.

Затем я создал проект dll на vs2005 (типичное приложение win32) и добавил этот заголовочный файл, созданный JNI. Я выбрал поддержку старого синтаксиса clr для проекта и добавил abc.dll в качестве ссылки на мой проект.

До сих пор все в порядке. Здесь проблема. Я реализовал методы, определенные в заголовочном файле, используя некоторые методы из abc.dll. У abc.dll есть класс с именем «abc», и вот что я делаю:

abc *abcObj = new abc(); abcObj->callSomeMethod();

Я беру билд из решения, все ок. Но когда я запускаю свою Java-программу, я получаю сообщение об ошибке от JVM о том, что нативный код вышел из строя?!?! Я отладил его, и проблема в новом (). Он просто не может создать экземпляр abcObj.

Затем я попытался с приложением c ++, используя тот abc.dll. Это сработало.

Я думаю, что должна быть проблема с JNI или той управляемой / неуправляемой вещью. Я не очень опытен в c / c ++, поэтому я не так много понимаю (по крайней мере, сейчас у меня нет времени, чтобы понять). Единственное, что я пытаюсь сделать, это создать DLL-оболочку с использованием сторонней библиотеки DLL и использовать DLL-оболочку в моем Java-приложении.

Любая помощь будет оценена.

Заранее спасибо…

-Хайдар

редактировать: У меня есть все DLL, которые нужны моей третьей стороне DLL.

0

Решение

Я решил проблему. Проблема заключалась в том, что я создавал проект как приложение win32 и выбирал dll. Я создал приложение clr, и все прошло хорошо. Я следовал инструкциям Вот.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]