- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ccJava调用DLL(通过VS2010)
Java/c/c++调用DLL
1、Java调用DLL(通过VS2010):
百度上有很多例子,不过因为自己的VC6.0不好用,所以我是在VS2010上面配置的:
Step One:
在Eclipse/MyEclipse上面新建一个Java的工程:
[java]?view plaincopyprint?
span?style=font-size:14px;public?class?TestJNI??
{??
????static??
????{??
????????System.loadLibrary(TestJNI);??
????}??
??????
????public?static?native?void?sayHello(String?msg);??
??????
????public?static?void?main(String[]?args)??
????{??
????????sayHello(Hello,this?is?my?first?JNI?program?!);??
????}??
}/span??
Step Two:
在命令行里面,相应的目录下面输入:
javac TestJNI.java ---生成了一个TestJNI.class文件
javah TestJNI---生成一个TestJNI.h文件
Step Three:
1、新建一个工程,选择Win32Project--next
2、选择dll工程---finish
3、将TestJNI.h、\Java\jdk1.6.0_10\include下面的jni.h、\Java\jdk1.6.0_10\include\win32下面的jawt_md.h放到TestJNI\TestJNI下面,然后通过Solution Explorer--Header Files--Add--Existing Item添加这三个文件
4、修改stdafx.h文件:
Step Four:
1、编辑TestJNI.cpp的文件:
[cpp]?view plaincopyprint?
span?style=font-size:14px;//?TestJNI.cpp?:?Defines?the?exported?functions?for?the?DLL?application.??
//??
??
#include?stdafx.h??
#include?TestJNI.h??
??
JNIEXPORT?void?JNICALL?Java_TestJNI_sayHello(JNIEnv?*?env,?jclass?obj,?jstring?jMsg)??
{??
????const?char?*strMsgPtr?=?env-GetStringUTFChars(?jMsg?,?0);?????
??
???????MessageBox(?0,?TEXT(Hello?World!),?TEXT(Tip),?0?);??
??
???????env-ReleaseStringUTFChars(?jMsg,?strMsgPtr);???
}??
/span??
注意:编译的时候会出现:,不要担心,因为在文件夹里面还是会生成出现dll文件,这个好像是因为dll是需要程序去调用它的,现在没有程序所以会报错的原因。2、打开工程属性,选择Configuration Properties ---VC++ Directories---include Directories 添加jdk路径下的include和/include/win32目录,这里包含jni.h等头文件3、build工程,打开工程目录的debug目录,将其中生成的TestJNI.dll考到java工程的java.library.path目录下(一般的是系统的system32目录),当然也可在工程的配置里面配置java.library.path目录为dll文件所在的目录
Step Five:
正常情况下就可以了
2、在C/C++里面调用DLL:
Step One:
打开VC6.0创建一个DLL:
1、文件--工程--Win32 Dynamic-Link Library--工程名称(如:dll)
2、新建一个c文件--文件--新建--C++ Source File--工程名称(如dllDemo.c),复制以下内容:
[cpp]?view plaincopyprint?
span?style=font-size:14px;#include?windows.h??
#include?dlldemo.h???
int?WINAPI?DllMain?(HINSTANCE?hInstance,?DWORD?fdwReason,?PVOID?p
您可能关注的文档
最近下载
- 现代项目管理(第二版)戴大双 5.项目组织与人力资源管理.ppt VIP
- 石膏娃娃课件.pptx VIP
- 常微分方程(第四版)课件 王高雄 高等教育出版社 第三章 一阶微分方程的解的存在定理.pptx VIP
- 现代项目管理(第二版)戴大双 4.计划与控制.ppt VIP
- 现代项目管理(第二版)戴大双 3.项目融资.ppt VIP
- 现代项目管理(第二版)戴大双 2.项目论证与评估.ppt VIP
- 《富致秘录》中源线建仓法(陈雅山 著 王明森 点校).pdf VIP
- 《同济大学-智能制造导论》第1章 智能制造概述_2.pptx VIP
- Scl90问卷.doc VIP
- 第一至四批上海市非物质文化遗产名录.doc VIP
文档评论(0)