网站大量收购独家精品文档,联系QQ:2885784924

JAVA如何调用C或者C++生成dll.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA如何调用C或者C生成dll

JAVA如何调用C或者C++生成的dll 本文为在 32 位 Windows 平台上实现 Java 本地方法调用dll的示例。由于对C语言不是很熟悉,有部分内容摘自网络。 第一步、编写java文件 package com.ztsoft.jni; public class MyDll { static { System.loadLibrary(MyDll); } public native static String HelloWord(); public native static String HelloWord(int num); } 第二步、编译生成h文件 1、编译 D:\MyEclipse 6.5M1 Blue\workspace\javaWorkSpace\srcjavac com/ztsoft/jni/MyDll.java (生成MyDll.class位于jni目录下) 2、生成h文件 D:\MyEclipse 6.5M1 Blue\workspace\javaWorkSpace\srcjavah com.ztsoft.jni.MyDll (生成com_ztsoft_jni_MyDll.h这个文件位于src目录下) /* DO NOT EDIT THIS FILE - it is machine generated */ #include jni.h /* Header for class com_ztsoft_jni_MyDll */ #ifndef _Included_com_ztsoft_jni_MyDll #define _Included_com_ztsoft_jni_MyDll #ifdef __cplusplus extern C { #endif /* * Class: com_ztsoft_jni_MyDll * Method: HelloWord * Signature: ()Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_com_ztsoft_jni_MyDll_HelloWord__ (JNIEnv *, jclass); /* * Class: com_ztsoft_jni_MyDll * Method: HelloWord * Signature: (I)Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_com_ztsoft_jni_MyDll_HelloWord__I (JNIEnv *, jclass, jint); #ifdef __cplusplus } #endif #endif 第三步、编写C++文件 在具体实现的时候,我们只关心两个函数原型。 JNIEXPORT jstring JNICALL Java_com_ztsoft_jni_MyDll_HelloWord__ (JNIEnv *, jclass); JNIEXPORT jstring JNICALL Java_com_ztsoft_jni_MyDll_HelloWord__I (JNIEnv *, jclass, jint); 以下我用的是vs2005编写c程序。 1、选择Visual C++ - Win32 - Win32项目(填写项目名称等)点击确定。 这一步选择DLL,勾选空项目,点击完成。 然后右击右侧的源文件,添加新相 然后再将com_ztsoft_jni_MyDll.h文件添加到C++的头文件中(先拷贝到工程下,然后在引入现有项) 然后拷贝原函数到MyDll.cpp文件中 #include com_ztsoft_jni_MyDll.h JNIEXPORT jstring JNICALL Java_com_ztsoft_jni_MyDll_HelloWord__ (JNIEnv *, jclass){ } JNIEXPORT jstring JNICALL Java_com_ztsoft_jni_MyDll_HelloWord__I (JNIEnv *, jclass, jint){ } 注意:一定要把JDK中的include文件夹中(和它下面的win32)的几个头文件拷贝到C++工程文件夹中。然后引入。 否则编译的时候出现类似的错误 根据头文件的路径,修改com_ztsoft_jni_MyDll.h 修改jni_md.h文件的引入 根据实际情况,修改MyDll.cpp文件。 第四步、编译生成DLL 选择build-rebuild?all对所写的程序进行编译。点击build-build?MyDll.DLL

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档