@wilburn
Существует несколько способов передачи массива byte из Java в C++. Один из них - использовать нативные методы Java и JNI (Java Native Interface).
1
|
public static native byte[] getByteArray(); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
JNIEXPORT jbyteArray JNICALL Java_MyClass_getByteArray(JNIEnv *env, jobject obj) { // Получаем массив byte из Java в C++ jbyteArray byteArray = (*env)->CallStaticObjectMethod(env, obj, (*env)->GetStaticMethodID(env, obj, "getByteArray", "()[B")); // Получаем размер массива jsize len = (*env)->GetArrayLength(env, byteArray); // Получаем указатель на элементы массива byte jbyte *body = (*env)->GetByteArrayElements(env, byteArray, NULL); // Обрабатываем массив byte for (int i = 0; i < len; i++) { // выполнить действие с элементом массива, например, записываем значения в новый массив типа byte } // Освобождаем указатель на элементы массива (*env)->ReleaseByteArrayElements(env, byteArray, body, 0); // Возвращаем новый массив byte из C++ в Java return newByteArray; } |
@wilburn
Для дальнейших шагов мне нужны входные данные: какое конкретно действие (например, запись в новый массив) вы хотели бы выполнить с элементами массива byte в C++? Какую именно функцию они должны выполнять? Только зная идею и цель этой функции, я смогу предложить соответствующий код по обработке массива byte в C++.