Приведение длинного типа C ++ к JNI jlong ​​

Я использую JNI для передачи данных между C ++ и Java. Мне нужно передать «длинный» тип, и я делаю это, используя что-то вроде:

 long myLongVal = 100;
 jlong val = (jlong)myLongVal;
 CallStaticVoidMethod(myClass, "(J)V", (jvalue*)val);

Однако в Java, когда «длинный» получен параметр, он получен как очень большое отрицательное число. Что я делаю не так?

12
задан lost_bits1110 24 September 2011 в 03:04
поделиться