使用JNA调用C++函数
准备工具:idea、Visual Studio 2019
- 首先在Visual Studio 2019中编写C++函数,我们采用具有导出项的(DLL)动态链接库的项目模板。
- 创建项目名为TestDll的解决方案。
- 在源文件的TestDll.cpp中加入一个简单的函数add。
TESTDLL_API int add(int a,int b)
{
int value = a + b;
cout << "dll add value = " << value;
return value;
}
- 在头文件的TestDll.h声明add函数。
extern "C" TESTDLL_API int add(int a, int b);
6.在项目解决方案中右键设置属性:
- 右键生成解决方案
- 找到生成的TestDll.dll文件
9.将dll文件放在ruoyi-system的resources中即可。
- 打开idea的若依项目,新建一个MyDll接口,放在ruoyi-system的service中
package com.ruoyi.system.service;
import com.sun.jna.Library;
import com.sun.jna.Native;
public interface MyDll extends Library {
MyDll mydll = (MyDll) Native.load("TestDll",MyDll.class);
int add(int a ,int b);
}
11.这时就可以在实现类中加入C++函数了,比如我放在了查询角色列表的功能中:
- 运行Ruoyi项目,并触发查询角色列表:
运行结果正确。说明调用成功。