JNI:将字节从C++传递到Java

11
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,抱歉!现在一切正常 :)

1个回答

11

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接