НЕ МОЖЕТ передавать java int в функцию jni

У меня есть простой jni функция в test.cpp:

#include <jni.h>
#include <stdio.h>

extern "C" {

JNIEXPORT jint JNICALL Java_dri_put(JNIEnv* env, jstring js, jint ji){

    printf("%d \n", ji);
    int t = ji;
    printf("%d \n", t);
    int k = -3412;
    return k;
 }
 }

мой класс Java javatest.java:

public class javatest {
  public static void main(String args[]) {
    System.loadLibrary("test");
    int t = 134;
    int k = dri.put("a", 5641);
    System.out.println(k);
  }
 }

вывод просто печатает случайное число переданного целого числа:

1075968840

1075968840

-3412

однако, если я измените jint на jdouble и передайте переменную java double, она отлично работает, ценим любую помощь здесь.

Класс dri java:

public class dri
{
  public final static native int put(String jarg1, int jarg2);
}

sizof(int) приводит к 4 байтам на моей машине (красная шляпа)

8
задан xichblueagle 24 May 2012 в 16:58
поделиться