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 启动,单步调试是汇编代码,所以要在调试的函数中设置断点,运行到断点处再单步调试
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章