java调用dll例子

最佳答案
1. 编写范例文档 
public class TestNative
{ 
  private native static int Max(int a,int b);   
  public static void main(String[] args) 
  { 
    System.out.println(Max(4,5)); 
  }  
  static 
  { 
    System.loadLibrary("VCdll"); 
  } 
} 
其中 
LoadLibrary中的DLL文件名称可以随便定.只要做好的动态链接库改名成这个字符串就可以了.而native函数的来源就是该动态链接库. 
2. 做好该步准备以后,用javac TestNative.java生成TestNative.class. 检验语法. 
3. 语法检查通过以后,用javah TestNative生成TestNative.h的C++头文件. 
4. 用VC++6.0创建dll文件:
   <1>msdev->new->project->win32 Dynamic-Link Library
   <2>Enter project name (e.g. VCdll)
   <3>choose "An empty DLL project"->finish
   <4>将3生成的TestNative.h和jdk下的jni.h和jni_md.h加入到工程中去
   <5>Create a c++ file, implements the native method. as follows:
//TestNative.cpp
#include "TestNative.h"
JNIEXPORT jint JNICALL Java_TestNative_Max
  (JNIEnv * a, jclass b, jint x, jint y)
{
 return x > y ? x : y;
}

备注: 
A  其中的jni.h通常在 jdk/include/ 可以先拷贝到VC安装目录下的include目录下.一劳永逸,以后可以方便使用JNI技术. 
B  全部的数据类型需要考虑Java和VC的接口问题.用jint  jstring 等. 
C  函数名称和自动生成的.h文件中规定的一致.命名规则是: Java_使用类_方法名  
6. 全编译一下VC++工程. 
  如果没有出错,则此时生成动态链接库成功. 
  把动态链接库VCdll.dll拷贝到TestNative.java所在的目录上. 
7.运行java TestNative. OK :-) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值