一:什么是dll?
    
   
    DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。
    
    写成dll文件大多是用C、VB、Delphi语言编写的,具体如何写就不考虑了,有现成的就行了。
   
    
     二:Java语言该如何调用dll?
    
   
采用JNative技术为例:
    首先将要调用的dll引入本地工程中:
    
    1. 首先下载JNative.jar包,将jar包导入工程中;
    
    2. 然后找到JNative.jar包中的JNativeCpp.dll(在windows环境中,Linux环境中用libJNativeCpp.so)
    
    3. 接着将 JNativeCpp.dll 和 要引入的dll文件 放入C:\Windows\System32 目录下;以及 jdk的bin目录下(因为dll文件中会用到
    
     .dat,
    
    .lib文件);如果是web动态工程用到Tomcat,还需要放到Tomcat的bin目录下;
    
    4. 还有一种方法是将他们直接放在本地工程中,加载本地文件;右击工程—Built Path—Source—Web App Libaries—Native library location:(none) — edit,选择本地放的dll文件夹就可以了。
   
    引入完后,开始写Java代码:
    
    在程序中加载dll文件有两种写法:
    
    ①:loadLibrary方法: 把dll文件拷贝到C:\Windows\System32目录 下, 引用时,只需要写dll文件名字即可。
   
System.loadLibrary("ZCDogChk"); // ZCDogChk 为dll文件名字②: load方法: 写dll文件的完整路径
System.load("D:\\RegisterPlatform\\ZCDogChk.dll");通过System.getProperty(“java.library.path”)查看路径位置
System.out.println(System.getProperty("java.library.path"));// “ZCDogChk” 为dll文件名, “fChkDogRegNumZC” 为要调用的函数名
JNative jNative = new JNative("ZCDogChk", "fChkDogRegNumZC");
jNative.setRetVal(Type.STRING);  // 设置调用后的返回值类型
jNative.setParameter(0, str);  //参数下标是从0开始
jNative.getFunctionName();    //dll 函数名   
jNative.getDLLName();   //dll文件名
jNative.invoke();  //执行dll方法
jNative.getRetVal(); //获取返回结果 
