मेरे पास जावा विधि तक पहुंचने के लिए जेएनआई विधि है जो एक इंटेगर ऑब्जेक्ट देता है। मैं आदिम int प्रकार को वापस नहीं करना चाहता क्योंकि यह कोड सामान्य वस्तुओं को संभालने के लिए संशोधित किया जाएगा। मेरे पास निम्नलिखित है। मैं जो इंटीजर पास करता हूं उसका मूल्य प्राप्त नहीं कर पा रहा हूं। सी ++ पक्ष में उत्पादन होता हैजेएनआई जावा ऑब्जेक्ट (इंटीजर) तक पहुंचने के लिए कैसे करें
value = 0x4016f3d0
मुझे लगता है कि मैं सी ++ अंत में पारित पूर्णांक वस्तु के वास्तविक मूल्य कैसे प्राप्त कर सकते हैं की तरह कुछ?
कृपया मदद करें।
धन्यवाद,
एच
GenericPeer.cpp
JNIEXPORT void JNICALL Java_GenericPeer_print (JNIEnv *jenv, jclass jcls, jobject data){
jclass peerCls = jenv->GetObjectClass(data);
jmethodID mGetValue = jenv->GetMethodID(peerCls, "getValue","()Ljava/lang/Integer;");
if(mGetValue == NULL){
return (-1);
}
jobject value = jenv->CallObjectMethod(data, mGetValue);
cout<<"value = "<<value<<endl;
}
GenericPeer.java
public class GenericPeer {
public static native void print(Data d);
static {
System.load("/home/usr/workspace/GenericJni/src/libGenericJni.so");
}
}
Data.j एवा
public class Data {
private Integer value;
pubilc Data(Integer v){
this.value = v;
}
public Integer getValue() { return value; }
public void setValue(Integer value) {
this.value = value;
}
}
Test.java (मुख्य वर्ग)
public class Test {
public static void main(String[] args){
Integer i = new Integer(1);
Data d = new Data(i);
GenericPeer.print(d);
}
}
हाय, कोड ऊपर मेरे लिए .. – RAJESH
क्यों 'Ljava/लैंग/पूर्णांक काम नहीं कर रहा है,', और नहीं 'Ijava/लैंग/पूर्णांक;'? –