has been callednquot13. return14.15.16.JNIEXPORT jint JNICALL17.Java_org_danlley_jni_test_HelloJniTest_getDynamicIntDataNoParam JNIEnv env jobject obj18.19. return 6553520.21.22.JNIEXPORT jint JNICALL23.Java_org_danlley_jni_test_HelloJniTest_getDynamicIntDataJNIEnv env jobject obj jint i24.25. ii26. return i27.28.29.JNIEXPORT jstring JNICALL Java_org_danlley_jni_test_HelloJniTes t_getDynamicStringData30.JNIEnv env jobject obj jstring arg31. //Get the native string from javaString32. const char nativeString env-gtGetStringUTFCharsarg 033. printfquotsquot nativeString34. //DONT FORGET THIS LINE35. env-gtReleaseStringUTFCharsarg nativeString36. return arg37. 重新对 C工程打包成 dll 文件,运行结果:---------------------------------------------------------------------------tester.getDynamicIntDataNoParam65535tester.getDynamicIntData10010000tester.getDynamicStringDataMy first String testJava_org_danlley_jni_test_HelloJniTest_displayHelloJni has been calledMy first String test---------------------------------------------------------------------------我们不仅把 Java 的一个 String 对象成功的传给了 dll,而且还将处理后的结果返回了出来。
但是总觉得还是不够,那我们就再来个比较复杂的对象把,我们这次将一个整形数组通过 java 传给 dll,看看是不是也可以处理,继续还是对 helloJniTest 类进行改造,新增一个方法:Java 代码 1. package org.danlley.jni.test 2. 3. public class HelloJniTest extends BaseClass 4. public HelloJniTestString arg 5. superarg 6. 7. public native void displayHelloJni 8. 9. public native int getDynamicIntDataNoParam 10. 11. public native int getDynamicIntDataint i 12. 13. public native String getDynamicStringDataString arg 14. 15. public native int getDynamicArrayDataint args 16.重新生成 org_danlley_jni_test_HelloJniTest.h 文件Cpp 代码 1. / DO NOT EDIT THIS FILE - it is machine generated / 2. include ltjni.hgt 3. / Header for class org_danlley_jni_test_HelloJniTest / 4. 5. ifndef _Included_org_danlley_jni_test_HelloJniTest 6. define _Included_org_danlley_jni_test_HelloJniTest 7. ifdef __cplusplus 8. extern quotCquot 9. endif 10./ 11. Class: org_danlley_jni_test_HelloJniTest 12. Method: displayHelloJni 13. Signature: V 14. / 15.JNIEXPORT void JNICALL Java_org_danlley_jni_test_HelloJniTest_d isplayHelloJni16. JNIEnv jobject17.18./19. Class: org_danlley_jni_test_HelloJniTest20. Method: getDynamicIntDataNoParam21. Signature: I22. /23.JNIEXPORT jint JNICALL Java_org_danlley_jni_test_HelloJniTest_g etDynamicIntDataNoParam24. JNIEnv jobject25.26./27. Class: org_danlley_jni_test_HelloJniTest28. Method: getDynamicIntData29. Signature: II30. /31.JNIEXPORT jint JNICALL Java_org_danlley_jni_test_HelloJniTest_g etDynamicIntData32. JNIEnv jobject jint33.34./35. Class: org_danlley_jni_test_HelloJniTest36. Method: .
上一篇:
【精品】C++程序书写规范
下一篇:
问卷调查可以自动生成试卷等,并且只能一个用户登录