java调用dll动态库(2/2)
1、进入eclipse,新建C++项目,选择共享库,项目名称:javadll.

2、进入项目属性,选中资源,把文本编码改为utf-8.

3、添加java的jni头文件的路径。

4、把c++链接器标志改为:-Wl,--add-stdcall-alias。点击“ok".

5、新建一个目录,存放源文件。

6、把上一篇生成的头文件javajni_javajni.h 文件,复制到c++项目的存放源文件的目录中。下图是我的存放目录。


7、新建一个c++的文件:javajni_javajni.cpp。

8、添加代码:返回字符串、整型、双精度
#include "javajni_javajni.h"
JNIEXPORT jstring JNICALL Java_javajni_javajni_getstring
(JNIEnv *env, jclass)
{
const char * str="java调用动态库!";
return env->NewStringUTF(str);
}
JNIEXPORT jint JNICALL Java_javajni_javajni_getint
(JNIEnv *env, jclass)
{
int zs=12345678;
return (jint)zs;
}
JNIEXPORT jdouble JNICALL Java_javajni_javajni_getdouble
(JNIEnv *env, jclass)
{
double dl=123456.0789;
return (jdouble)dl;
}

9、选中项目,构建项目,dll文件生成。


10、把生成的libjavadll.dll文件拷贝到java项目中。下图是我的目录。


11、在打开上节java项目,添加代码:
static{
System.loadLibrary("libjavadll");
}

12、运行javajni项目,调用dll函数正常!
