JAVA调用DLL备忘 Eclipse 和DEV-C++环境 博客分类: 程序技术
程序员文章站
2024-02-05 08:27:46
...
参考 http://www.cnblogs.com/AnnieKim/archive/2012/01/01/2309567.html
这片文章说的是 java 通过jni 调用 c 的dll,只不过环境用的是vs 作为我们java界当然喜欢一切开眼的东西了
这里改造成dev-c++这个开源c++ ide 来实现,其实就是工具上的差异
首先写java端不多说,建工程
public class APCluster { public native int CallAPClusterDll(int data); static { System.loadLibrary("APClusterDllMedium"); System.out.println("I m in java"); } }
public class Test {
/** * @param args */ public static void main(String[] args) { new APCluster().CallAPClusterDll(65535); } }
C 端的
#include "APCluster.h" #include <cstdlib> #ifdef __cplusplus extern "C" { #endif typedef int* (__stdcall *APCLUSTER32)(double*, unsigned int, bool); JNIEXPORT jint JNICALL Java_APCluster_CallAPClusterDll(JNIEnv *env, jobject _obj, jint _arg_int) { printf("%d",_arg_int); return 0; } #ifdef __cplusplus } #endif
重要步骤主要在C端
C 端:
把
%java_home%\include
%java_home%\include\
还有java端生成的 .h 文件的目录 一共三个都加入 c端的包含目录里来
c端主要就这些了
java端,声明完类后
cmd 到javasrc下
编译刚辞那个源文件
重要的步骤是 执行
javah APCluster
这个是生成c用到的头文件
然后把C生成的dll放在 系统路劲下 就是 环境变量 path 任何一个目录下 比如c:\\windows
运行test 试试看!!