JNA调用VC++代码

来源:互联网 发布:淘宝来客提醒 编辑:程序博客网 时间:2024/05/29 07:46

继上一篇JNI调用VC++代码,本例仍以一个斐波那契额函数来说明。

1. 在Visual Studio中新建一个Win32项目,

选择应用程序类型为DLL,并勾选"空项目",

2. 在项目中新建头文件和源文件

//fabonacci.hextern "C" _declspec(dllexport) int fabonacci(int num);
//fabonacci.cpp#include "fabonacci.h"#include <iostream>using namespace std;int fabonacci(int num){if(num < 0){return -1;}if(num == 0){return 0;}if(num == 1){return 1;}return fabonacci(num-1)+fabonacci(num-2);}

3. 生成DLL动态库文件,注意解决方案平台要与操作系统一致(本机是x64)

32位的生成文件位置在项目下的debug目录下,x64平台的则是在x64/debug目录下

4. 新建Eclipse项目,添加jna.jar包到BuildPath,然后把刚刚生成的DLL文件放到src文件目录下

新建测试类:

//JNAFabonacci.javapublic class JNAFabonacci {public interface Fabonacci extends Library{Fabonacci INSTANCE = Native.loadLibrary("JNA-Fabonacci",             Fabonacci.class);int fabonacci(int num);}public static void main(String[] args) {System.out.println(Fabonacci.INSTANCE.fabonacci(6));}}
运行java程序:


5. 如果出现下面的异常,请确认用Visual Studio生成的时候使用的是与操作系统一致的平台(本机是x64平台)

另外,若出现下面的异常,可以尝试把dll文件放到jdk安装目录的bin目录下(Path路径下的目录都行)

原创粉丝点击