JNI 在 VC++6.0 中如何調試 DLL

編寫 JNI 時,數據類型名字遵循 Java 的相關規則,如 jint,jchar,jboolean,jlong 等,DLL 代碼和 Java 代碼交換數據也有自己的一套方法,如 env->GetFieldID(),env->GetMethodID() 等,需要一些時間才能熟悉,初學總是難免犯一些低級錯誤,所以掌握正確的調試方法尤爲重要。

 

本人採用的工具是:Eclipse、VC++6.0

 

步驟如下:

  • Eclipse 新建工程,編寫 Java 代碼
  • cmd 進入命令行模式,切換到工程目錄的 bin 文件夾,javah -jni com.ldq.xxx 生成頭文件 _com_ldq_xxx.h
  • VC++6.0 新建 DLL 工程,編寫源文件 _com_ldq_xxx.cpp
  • 注意將 jni.h 文件和 jni_md.h 文件位置加入 Include 路徑
  • DLL 無法自已運行,需要可執行的 exe 調用 DLL 纔可以,VC++6.0 中的設置如下
    • 在左側 workspace 中,右鍵點擊建立的DLL工程,選 Settings ,選 Debug 選項卡,依次填入
      • Executable for debug session 填入 C:\Program Files\Java\jdk1.6.0_13\bin\java.exe
      • Working directory 填入 DLL工程路徑\debug
      • Program arguments 填入 com.ldq.xxx
    • 將 Eclipse 工程路徑下 bin 文件夾的類文件拷貝到 DLL工程路徑\debug 下
    • 由於從 java.exe 啓動,單步調試是彙編代碼,所以要在調試的函數中設置斷點,運行到斷點處再單步調試
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章