Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Технология JNI, не работает пример :(


Рекомендуемые сообщения

Всем привет,

Занялся изучением технологии 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

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...