一、下载swig程序
http://swig.org/download.html
二、创建C++的DLL项目JavaPlus
项目创建过程参考另外一篇博文:http://blog.csdn.net/qq_32782059/article/details/77966734
三、创建相关的C++文件
Calculator.h文件的内容如下:
#pragma once
#define JAVAPLUS_EXPORTS
#ifdef JAVAPLUS_EXPORTS
#define CPP_API __declspec(dllexport)
#else
#define CPP_API __declspec(dllimport)
#endif
class CPP_API Calculator
{
public:
Calculator(void);
~Calculator(void);
int Add(int x, int y);
};
Calculator.cpp文件的内容如下:
#include "Calculator.h"
Calculator::Calculator(void) {
}
Calculator::~Calculator(void) {
}
int Calculator::Add(int x, int y) {
return x + y;
}
swig导出文件如下(同Calculator.h放在同一个目录下):
%module JavaPlus
%{
#include "Calculator.h"
%}
#### 注意:include的前面要用%号。
%include <windows.i>
%include "Calculator.h"
四、生成对应的C++和java文件
swig.exe -java -c++ -outdir E:\JavaPlus\purejava Calculator.i
五、将Calculator_wrap.cxx添加到JavaPlus的C++项目里面,重新编译文件。
并且将变异好的JavaPlus.dll文件拷贝到E:\JavaPlus\purejava目录下
六、编写并编译java文件。
swig将在E:\javaplus\purjava目录下生成三个文件,分别是Calcualtor.java, JavaPlus.java, JavaPlusJNI.java,
可以修改JavaPlus.java文件的内容如下:
public class JavaPlus {
public static void main(String[] args) {
System.out.println(System.getProperty("java.library.path"));
System.loadLibrary("JavaPlus");
Calculator cal = new Calculator();
int result = cal.Add(10,30);
System.out.println("result = " + result);
}
}
运行javac JavaPlus.java 进行编译
运行java JavaPlus执行程序,输出结果如下:
result = 40