我知道的有种方法,一种是直接用JNI,另一种是则是用.doc

我知道的有种方法,一种是直接用JNI,另一种是则是用.doc

ID:55396208

大小:27.00 KB

页数:2页

时间:2020-05-12

我知道的有种方法,一种是直接用JNI,另一种是则是用.doc_第1页
我知道的有种方法,一种是直接用JNI,另一种是则是用.doc_第2页
资源描述:

《我知道的有种方法,一种是直接用JNI,另一种是则是用.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、我知道的有两种方法,一种是直接用JNI,另一种是则是用Jacob(实质上也用的是JNI)先讲讲第一种方法1.编写java程序TestDll,注意,这个类有两个作用,一个是用来做头文件,另外一个作用就是通过它来调用dllpublicclassTestDll{  static { System.loadLibrary("DLLSample");//载入dll } publicnativestaticintDoubleValue(inti);//函数声明 }2.编译:javacTestDll3.生成头文件:javahTest

2、Dll生成TestDll.h文件,这里面只对函数DoubleValue作了声明/*DONOTEDITTHISFILE-itismachinegenerated*/#include/*HeaderforclassTestDll*/#ifndef_Included_TestDll#define_Included_TestDll#ifdef__cplusplusextern"C"{#endif/* *Class:    TestDll *Method:   DoubleValue *Signature:(I)I

3、 */JNIEXPORTjintJNICALLJava_TestDll_DoubleValue (JNIEnv*,jclass,jint);#ifdef__cplusplus}#endif#endif4.用vc制作DLL修改DLLSample工程,程序中添加函数DoubleValue的实现,函数名必须用jni规定格式,可以照到.h文件里的声明来写:#include"jni_md.h"#include"TestDll.h"JNIEXPORTjintJNICALLJava_TestDll_DoubleValue(JNIEn

4、v*,jclass,jintp){intj=p*2;returnj;}JNIEXPORT,JNICALL,JNIEnv*,jclass请都不要动,jint对应是java里的int别忘了把TestDll.h,jni.h(这个文件在jdk/include下),jni_md.h(这个文件在jdk/include/win32下)复制到VC工程目录中,然后编译生成dll5.把生成的DLLSample.dll复制到jdk/bin下(确保PATH指向了这个目录)6.应用我看到他们举的例子都是把调用写在了main里,在这里我把应用取出

5、来放在一个servlet类中的测试的,同样可以得到正确结果,这里体现国TestDll的第二个作用,它是调用dll的一个纽带 ......  TestDlltd=newTestDll();  System.out.println("result="+td.DoubleValue(25)); .....注意:    如果更改了TestDll的内容或重使命名了这个文件,必须重新用它生成头文件,在dll里也要做相应修改,因为必须要和java里面的声明一致才行

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。