第三,在HelloBabyJNI.cpp中添加我们的native method的方法实现,并且加入相应的形参。
<pre class="cpp" name="code">// HelloBabyJNI.cpp : Defines the entry point for the DLL application. // #include "stdafx.h" BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { return TRUE; } //以上为VC自动生成/* /* 这就是是java生成的头文件的native方法实现,其命名约定为 Java_包名_方法名 * JNIEXPORT JNICALL JNIEnv 以及jobject皆是Jni的关键字 * 具体实现则完全按照C++语法操作 */ JNIEXPORT jint JNICALL Java_com_lover_hellojni_HelloBabyJNI_add (JNIEnv * env, jobject, jint a, jint b) { int result =a+b ; return result ; }
那么,这个result则是我们本地方法需要返回给java调用者的。
最后,大功告成前,可别得意。我们需要为我们的工程添加Java JNI的头文件引用,具体添加文件在我们安装的jdk目录下。
成dll动态链接库--->单栏上 Build--->Build HelloBabyJNI.dll ,成功运行后,会在当前工程目录下的Debug文件下找到我们创建的HelloBabyJNI.dll动态链接库。
三、运行Java工程
通过前两个大步骤,我们成功的创建了Java工程以及其所调用的dll动态链接库,为了让系统在调用的时候能够访问到HelloBabyJNI.dll,我只是简单的将其放入C:\Window\System32文件夹下(Window7中)。 成功运行之前创建的Java工程。输出为:
总结:
在Java原生JNI调用的时候,重点掌握以下几个方面:
1、javah指令的掌握 ;
2、参数类型的映射 ;
3、生成的头文件(.h)中native method方法的理解以及实现上。
如此,则我们可以很好的掌握Java原生JNI的使用了。