小编jus*_*me_的帖子

C++ int到byte数组

我在我的java代码中有这个方法,它返回给定int的字节数组:

private static byte[] intToBytes(int paramInt)
{
     byte[] arrayOfByte = new byte[4];
     ByteBuffer localByteBuffer = ByteBuffer.allocate(4);
     localByteBuffer.putInt(paramInt);
     for (int i = 0; i < 4; i++)
         arrayOfByte[(3 - i)] = localByteBuffer.array()[i];
     return arrayOfByte;
}
Run Code Online (Sandbox Code Playgroud)

有人可以给我提示如何将该方法转换为C++?

c++ arrays int byte

26
推荐指数
7
解决办法
10万
查看次数

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);
Run Code Online (Sandbox Code Playgroud)

问题是字节数​​组在java方面只包含空字节,有没有人知道为什么?

编辑:哦,我的不好应该是SetByteArrayRegion,对不起!现在都在工作:)

java java-native-interface

11
推荐指数
1
解决办法
2万
查看次数

标签 统计

arrays ×1

byte ×1

c++ ×1

int ×1

java ×1

java-native-interface ×1