Вызов неуправляемых методов C\C++ DLL из Java?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Вызов неуправляемых методов C\C++ DLL из Java?

Сообщение Anonymous »

Я просмотрел множество примеров вызова неуправляемых методов DLL из Java с использованием JNI, но ни один из них не показывает фактический вызов методов DLL. Все примеры, которые я видел, просто печатают «Hello World» или складывают два числа. Вот код, показывающий, о чем я говорю.

Код: Выделить всё

public class NativeClassWrapper {

public static native void userLogin(int id, char[] username, char[] password);

static {
System.loadLibrary("User.dll");
}

public static void main(String[] args) {

userLogin(100000, "user123\0".toCharArray(), "password123\0".toCharArray());
}
}

Код: Выделить всё

// javac -h NativeClassWrapper.java generate C header

/* DO NOT EDIT THIS FILE - it is machine generated */
#include 
/* Header for class NativeClassWrapper */

#ifndef _Included_NativeClassWrapper
#define _Included_NativeClassWrapper
#ifdef __cplusplus
extern "C" {
#endif

JNIEXPORT jboolean JNICALL Java_dll_call_NativeClassWrapper_userLogin
(JNIEnv *, jobject, jint, jcharArray, jcharArray);

#ifdef __cplusplus
}
#endif
#endif

На данный момент я не понимаю, как я на самом деле вызываю свой 12-летний неуправляемый метод C/C++ DLL. Должен ли я создать совершенно новую копию файла класса CPP и переименовать все методы, чтобы они соответствовали именам методов, сгенерированных JNI, и создать совершенно новую DLL? В C# мне не нужно было делать ничего подобного, отсюда и мой вопрос.
TIA

Подробнее здесь: https://stackoverflow.com/questions/790 ... -from-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»