![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
lexluther |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 26.10.2004 Репутация: нет Всего: нет |
Всем привет,
Занялся изучением технологии JNI и столкнулся с проблемой. Мой пример не работает хотя код написан по всем правилам. Код C++ библиотеки сгенерированный при помощи javah: #include <windows.h> #include <jni.h> extern "C" JNIEXPORT void JNICALL Java_MyJavaPackage_NextLevelClass_ShowCall(JNIEnv *, jobject); И #include "MyJavaPackage_NextLevelClass.h" extern "C" JNIEXPORT void JNICALL Java_MyJavaPackage_NextLevelClass_ShowCall (JNIEnv *, jobject) { MessageBox(NULL,"TEST","TEST",MB_OK); } Есть класс в котором я определил внешний нейтивный метод: package MyJavaPackage; public class NextLevelClass{ static { try{ System.load("G:\\Documents and Settings\\artiom\\My Documents\\NetBeansProjects\\MyDesktopApplication\\dist\\lib\\MyDynamicLibrary.dll"); } catch(UnsatisfiedLinkError g) { System.out.print(g.getMessage() + " LIBRARY EXCEPTION"); } } private static native void ShowCall(); public void GiveIt() { try{ ShowCall(); } catch(UnsatisfiedLinkError g) { System.out.print(g.getMessage() + " METHOD EXCEPTION\n"); } } } Сам код в вызывающей программе выглядит следующим образом: NextLevelClass NLC1 = new NextLevelClass(); NLC1.GiveIt(); В результате при выполнении библиотека сама загружается идеально, но при вызове метода ShowCall возникает исключение UnsatisfiedLinkError. Подскажите пожалуйста в чем может быть проблема? Версия ОС: Windows XP Service Pack 3 Версия JAVA (java -version): java version "1.6.0" Java SE Runtime Environment (build 1.6.0-b105) Java HotSpot Client VM (build 1.6.0-b105, mixed mode, sharing) Среда разработки (About окно): Product Version: NetBeans IDE 6.1 (Build 200805300101) Java: 1.6.0; Java HotSpot Client VM 1.6.0-b105 System: Windows XP version 5.1 running on x86; Cp1251; uk_UA (nb) Userdir: G:\Documents and Settings\artiom\.netbeans\6.1 |
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
оберни весь код в теги во всех своих темах
тогда и поговорим ![]() очень трудно так смотреть что к чему |
|||
|
||||
rygel |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 21.9.2007 Где: Харьков Репутация: 6 Всего: 7 |
у вас в аргументе метода:
второй аргумент ссылается на объект класса NextLevelClass, хотя метод в классе объявлен как статический:
и объявление должно выглядеть так:
Это означает что вам нужно или убрать static из объявления метода в классе, или перегенерить файл хедера (но еще проще изменить jobject на jclass) |
||||||
|
|||||||
ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 33 Всего: 81 |
<Dll project> -> Properties -> Build/Linker -> Command Line/Additional Options: в поле добавить
Вкратце объяснение, например, тут |
|||
|
||||
barin_Student |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 488 Регистрация: 10.8.2007 Где: Казахстан , Алмат ы Репутация: 1 Всего: 2 |
Дублируете темы с другого форума...
![]() И там тоже код нормально не оформлен... ![]() -------------------- Нехорошо блин!!! |
|||
|
||||
SoulKeeper |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.1.2007 Где: Ukraine, Lviv. Репутация: 11 Всего: 15 |
Мда.... А вот Visual Studio 2008 батотает с JNI идеально ![]() |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |