Java_ABC_9.Java中导入dll文件

1. C++生成DLL文件

     1.1创建工程

            打开VC++编译器,然后选择Win32 Project ,然后选择工程位置工程名称,然后点击下一步,再点击下一步 ,在应用程序类型 中选择DLL(D),然后点击完成 ,至此工程创建成功。

     1.2编写函数

       工程名字是test,在源文件文件夹中会有一个”test.app“文件,打开文件,在文件中写:

       extern "C" __declspec(dllexport) int  sum(int a,int b)

       {

             return a+b;

       }

      首先:extern "C" __declspec(dllexport) 这部分是固定的,然后是返回值类型函数名称参数列表,下面就是函数的具体实现。

    1.3生成DLL

     选择生成方式为”Debug“或者”Realse“,然后在Debug文件夹或者Realse文件夹中会找到相应的DLL文件。

    1.4验证DLL

     去网上下载个DLL函数查看器,然后打开生成的DLL文件,看是否你要的函数在里面。

2. Java中导入DLL文件

     2.1下载地址:

       JNative_1.4RC2_src.zip :http://jaist.dl.sourceforge.net/sourceforge/jnative/JNative_1.4RC2_src.zip

       JNative_1.4RC2_src.zip是JNative源代码的压缩包把它解压后从中找到libJNativeCpp.so和JNativeCpp.dll两个文件.JNativeCpp.dll应用在Windows平台下.把它放在

       JNative.jar :http://nchc.dl.sourceforge.net/sourceforge/jnative/JNative.jar

       把JNative.jar加入到所需的工程中,把要调用的dll文件也放在c:\windows\system32目录下。

     2.2测试函数

      package com.xgz.jnative;

      import org.xvolks.jnative.JNative;
      import org.xvolks.jnative.Type;

      public class Test {
	public static void main(String[] args)throws Exception {
   	/*系统加载dll文件有两种写法
        1.loadLibrary方法:把dll文件拷贝到c:\windows\system32目录下,引用时只需写dll名字
        2.load方法:写dll文件的完整路径
        */   	
        System.loadLibrary("InterfaceFun");//InterfaceFun是dll文件
   	//参数说明InterfaceFun dll名,AddZhiYe函数名
   	JNative jnative = new JNative("InterfaceFun","AddZhiYe");
   	//设置此函数的返回值
   	jnative.setRetVal(Type.INT);
  	//赋予参数值
   	int i=0;
   	jnative.setParameter(i++, Type.INT,"1");
   	jnative.setParameter(i++, Type.INT,"2");
   	//函数执行
   	jnative.invoke();
   	//打印函数返回值
   	System.out.println(Integer.parseInt(jnative.getRetVal()));
	}
}

     2.3注意:

     System.loadlibrary(""):

    1) 和jre相关的一些目录
    2)程序当前目录
    3)Windows目录
    4)系统目录(system32)
    5)系统环境变量path指定目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值