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 :-)