zoukankan      html  css  js  c++  java
  • Java 调用Dll

    Java 中怎么能调用到dll中的函数呢?

    关键是java中生的本地函数名參数和dll中的本地函数名參数一模一样。


    这个程序是java中调用dll中的求和函数。


    一,java代码部分操作


    1.新建project


    2.DllTest.java代码

    package com.aizizai.calldll;
    
    public class DllTest {
    
    	static {
    
    		System.loadLibrary("hellodll");
    	}
    
    	public static native int sum(int a, int b);
    
    	public static void main(String[] args) {
    		System.out.println("sum(2,5) = " + sum(2, 5));
    	}
    
    }
    

    3. 生成头文件

    Java调用dll測试src>javac com/aizizai/calldll/DllTest.java
    Java调用dll測试src>javah com.aizizai.calldll.DllTest
    


    二,VC利用前面的头文件生成dll。本文使用的是vs2010。


    1. 创建项目

    新建项目--> vc++ --> win32项目 --> 命名为hellodll -->应用程序类型:dll -->ok。

    2. 加入头文件

    a. 把

    /jdk/include/jni.h

    /jdk/include/win32/jawt_md.h

    /jdk/include/win32/jni_md.h

    拷到项目文件夹下或者Vs的include文件夹下。

    b. stdafx.h中加入

    #include "com_aizizai_calldll_DllTest.h"

    3. 在源文件里加入函数实现

    // hellodll.cpp : 定义 DLL 应用程序的导出函数。
    //
    
    #include "stdafx.h"
    
    JNIEXPORT jint JNICALL Java_com_aizizai_calldll_DllTest_sum
    	(JNIEnv *env, jclass ss, jint a, jint b){
    		return a+b;
    }
    

    4. 生成dll

    生成 ---> 生成dll。

    就可以在项目的Debug文件夹下看到。hellodll.dll文件


    三,使用

    把dll文件拷到 c:windows文件夹下,执行java程序。ok。



    程序下载地址:http://download.csdn.net/detail/u012587637/8065041










  • 相关阅读:
    Nexus centos 安装
    Linux下Redis的安装和部署
    Markdown编辑器
    mysql 递归查询 主要是对于层级关系的查询
    Maven 打包的时候报 Failed to execute goal org.codehaus.mojo:native2ascii-maven-plugin
    WPS 认证机制
    网络延迟分析
    帧传送、关联与身份验证状态
    802协议族
    【转】Hostapd工作流程分析
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5210952.html
Copyright © 2011-2022 走看看