Visual Studio 2017 + java + C++ and swig

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32782059/article/details/77979564

一、下载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




猜你喜欢

转载自blog.csdn.net/qq_32782059/article/details/77979564