zoukankan      html  css  js  c++  java
  • Java使用JNative调用DLL库

    1. 编写测试DLL文件,源文件参照JNA调用用的DLL文件。地址:http://www.cnblogs.com/vevy/p/9076941.html

    2. (很重要)右键项目 --> 属性 --> 常规 --> 选择MFC的使用 --> 改成在静态库中使用MFC,在.h头文件的函数声明中添加 extern "C" 标识, .h文件部分代码

    #define JNADLL extern "c" _declspec(dllexport)
    extern "C" JNADLL int add(int x, int y);
    
    1. 导入Jnative.jar包和JNativeCpp.dll文件到项目目录下,如果是Linux系统,导入的为libJNativeCpp.so而不是JNativeCpp.dll。下载地址:https://download.csdn.net/download/w139074301/10427312

    2. 编写测试类JnativeTest,代码如下

    public class JnativeTest {
    	public static void main(String[] args) {
    		JNative.setLoggingEnabled(true); //显示日志
    		try {
    			JNative c = new JNative("MyDLL", "add"); //新建JNative对象,第一个参数为需要调用的DLL文件位置,第二个参数为调用的方法名
    			c.setRetVal(Type.INT); //设定返回值
    			c.setParameter(0, 1); //设定第一个参数的值
    			c.setParameter(1, 2); //设定第二个参数的值
    ;			c.invoke(); //执行调用
    			System.out.println("java调用dll动态库的add方法后执行的结果为:" + c.getRetVal());
    		}
    		catch (NativeException | IllegalAccessException e) {
    			e.printStackTrace();
    		}
    	}
    }
    
    1. 运行

    Jnative如果报错,可能为只支持32位JDK

  • 相关阅读:
    CUDA和cudnn的环境变量设置问题
    zsh-Ubuntu更实用终端
    应用安全
    应用安全
    应用安全
    操作系统
    应用安全
    应用安全
    操作系统
    密码学
  • 原文地址:https://www.cnblogs.com/vevy/p/9077726.html
Copyright © 2011-2022 走看看