- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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){
}
注意:一定要把中的include文件夹中(和它下面的win32)的几个头文件拷贝到文件夹中。com_ztsoft_jni_MyDll.h
修改jni_md.h文件的引入
根据实际情况,修改MyDll.cpp文件。
第四步、编译生成DLL
选择build-rebuild?all对所写的程序进行编译。点击build-build?My.DLL生成DLL文件。/**
* 测试dll方法
* @param args
*/
您可能关注的文档
最近下载
- 羊水栓塞护理措施.pptx VIP
- 星球版八年级上册地理第四章《第一节 因地制宜发展农业》教案.docx VIP
- 2025年粤东西北教师全员轮训心得体会2篇.doc VIP
- TCRHA-成人床旁心电监测护理规程.pdf VIP
- 中联W6015-8A塔吊说明书操作手册.pdf VIP
- 过滤材料和部件市场前景预测与技术创新策略研究报告.pdf
- 新生儿甲状腺功能降低.pptx
- 8.27-安徽A10联盟2025届高三8月底开学摸底考试题及答案1号卷·A10联盟2025届高三上学期8月底开学摸底考物理答案.pdf VIP
- 华为HCIE-CloudServiceSolutionsArchitect云服务练习试题.doc
- 8.27-安徽A10联盟2025届高三8月底开学摸底考试题及答案A10联盟2025届高三上学期8月底开学摸底考英语答案 1.docx VIP
文档评论(0)