Я делаю интерфейс к библиотеке DLL, чтобы я мог использовать его с Java.
Мне нужна моя нативная функция для изменения значения параметра jlong. Вроде параметр был передан по ссылке.
Мой Java-метод должен иметь точные параметры, как показано здесь в качестве встроенной функции MPUSBWrite.
Пример действующего неработающего кода:
MPUSBWrite получает свой 4-й параметр в качестве ссылки и изменяет значение itrs.
Я всегда получаю 0, когда читаю переданную переменную pLength.
Java:
public static native boolean Write(long handle, byte[] pData, int dwLen, long pLength, int dwMilliseconds);
Родной C ++:
JNIEXPORT jboolean JNICALL Java_jPicUsb_iface_Write
(JNIEnv *env, jclass jc, jlong handle, jbyteArray pData, jint dwLen, jlong pLength, jint dwMilliseconds) {
jniByteArray b(env, pData);
DWORD res = MPUSBWrite((HANDLE)handle,b.getBytes(),dwLen,(PDWORD)pLength,dwMilliseconds);
if (res) {
return JNI_TRUE;
} else {
return JNI_FALSE;
}
}
Есть ли способ, которым мой код C ++ изменяет значение переменной pLength по ссылке?