- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Code::Blocks生成jni用的dll库文件
下面以Hello World 为例来说明
(1)java源程序,有一个native方法,输出hello world
?
Java代码
import?java.io.IOException; ??
??
public?class?helloworld?{ ??
????static{ ??
????????System.loadLibrary(helloworld); ??
????} ??
??
????public?static?native?void?printit(); ??
??
?????????????public?static?void?main(String[]?args)?{????????????????????helloworld?h?=?new?helloworld(); ??
????????h.printit(); ??
???????? ??
????} ??
}??
import java.io.IOException;
public class helloworld {
static{
System.loadLibrary(helloworld);
}
public static native void printit();
public static void main(String[] args) { helloworld h = new helloworld();
h.printit();
}
}
?(2)生成dll
?
javac helloworld.java
javah -jni helloworld
?
至此生成 helloworld.h
?
Cpp代码
/*?DO?NOT?EDIT?THIS?FILE?-?it?is?machine?generated?*/??
#include?jni.h ??
/*?Header?for?class?helloworld?*/??
??
#ifndef?_Included_helloworld ??
#define?_Included_helloworld ??
#ifdef?__cplusplus ??
extern?C?{ ??
#endif ??
/* ?
?*?Class:?????helloworld ?
?*?Method:????printit ?
?*?Signature:?()V ?
?*/??
JNIEXPORT?void?JNICALL?Java_helloworld_printit ??
??(JNIEnv?*,?jclass); ??
??
#ifdef?__cplusplus ??
} ??
#endif ??
#endif??
/* DO NOT EDIT THIS FILE - it is machine generated */
#include jni.h
/* Header for class helloworld */
#ifndef _Included_helloworld
#define _Included_helloworld
#ifdef __cplusplus
extern C {
#endif
/*
* Class: helloworld
* Method: printit
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_helloworld_printit
(JNIEnv *, jclass);
#ifdef __cplusplus
}
#endif
#endif
?
手工建立main.cpp
?
Cpp代码
#include?jni.h ??
#include?helloworld.h ??
#include?windows.h ??
#include?stdio.h ??
??
JNIEXPORT?void?JNICALL?Java_helloworld_printit ??
??(JNIEnv?*env,?jclass?obj) ??
??{ ??
????????MessageBox(NULL,HelloWorld,ok,MB_OK); ??
??}??
#include jni.h
#include helloworld.h
#include windows.h
#include stdio.h
JNIEXPORT void JNICALL Java_helloworld_printit
(JNIEnv *env, jclass obj)
{
Mes
您可能关注的文档
最近下载
- 国际金融概论(孟昊 王爱俭)09—国际储备政策.ppt VIP
- 国际金融概论(孟昊 王爱俭)08—外汇与汇率政策.pptx VIP
- 宣城市2024届高三年级第一次调研测试(一模)物理试卷(含答案).docx
- 国际金融概论(孟昊 王爱俭)07—国际结算与贸易融资实务.ppt VIP
- 机械臂远程控制的设计与实现.doc
- 《铁道概论》考试复习题库(浓缩300题).docx
- 全国陆生野生动物资源调查与监测技术规程.doc
- 国际金融概论(孟昊 王爱俭)06—外汇风险与防范实务.ppt VIP
- 2022义务教育道德与法治课程标准(2022版)解读(含课程标准方案解读).pdf
- FE1.1s (B) Data Sheet 0.1.pdf
文档评论(0)