JNI: передача байтов из c ++ в java

HANDLE hFile = CreateFileA("C:\\myfile.zip", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
const int size = GetFileSize(hFile, NULL);
char* buffer = new char[size];
DWORD read;
ReadFile(hFile, buffer, size, &read, NULL);

jclass cls = ...;
jmethodID id = ...;

jbyteArray arr = env->NewByteArray(size);
env->GetByteArrayRegion(arr, 0, size, (jbyte*) buffer);
env->CallStaticVoidMethod(cls, id, arr);

проблема в том, что массив байтов содержит только нулевые байты на стороне Java, кто-нибудь знает почему?

РЕДАКТИРОВАТЬ: о, беда, это должен быть SetByteArrayRegion, извините! все сейчас работают :)

11
задан justme_ 6 June 2011 в 00:55
поделиться