JNIjw02
1、VC6(CPP)的DLL代码:
#include<stdio.h>
#include "jniZ_JNIjw02.h" JNIEXPORT void JNICALL Java_jniZ_JNIjw02_TestZ (JNIEnv * env, jobject obj)
{
printf("Java_jniZ_JNIjw02_TestZ - 1\n"); // ∵ TestZ() 不是静态函数,∴传进来的就是调用这个函数的对象.
// 否则就传入一个jclass对象表示native方法所在的类
jclass jni02_clazz = env->GetObjectClass(obj);
jfieldID fieldID_prop = env->GetFieldID(jni02_clazz, "propertyZ", "I");
jmethodID methodID_func = env->GetMethodID(jni02_clazz, "FunctionZ", "(ILjava/util/Date;[I)I");
env->CallIntMethod(obj, methodID_func, 0L, NULL, NULL); // invoke ! printf("Java_jniZ_JNIjw02_TestZ - 2\n");
}
2、Java代码:
package jniZ; import java.util.Date; public class JNIjw02
{
public int propertyZ;
public int FunctionZ(int _foo, Date _date, int[] _arr)
{
System.out.println("FunctionZ");
return 0;
}
public native void TestZ(); public static void main(String[] args)
{
System.loadLibrary("JNIjwVC6_02");
JNIjw02 jni02 = new JNIjw02();
jni02.TestZ(); /*
ZC: 为什么打印的顺序是这样的? :
FunctionZ
Java_jniZ_JNIjw02_TestZ - 1
Java_jniZ_JNIjw02_TestZ - 2
ZC: 个人觉得应该是这样啊 :
Java_jniZ_JNIjw02_TestZ - 1
FunctionZ
Java_jniZ_JNIjw02_TestZ - 2
*/
}
}
3、Java控制台输出:
FunctionZ
Java_jniZ_JNIjw02_TestZ - 1
Java_jniZ_JNIjw02_TestZ - 2
4、
5、
JNIjw02的更多相关文章
- JNI_Z_03_类中的字段和方法的签名
1. Java类型 相应的签名 例子 boolean Z byte B char C short S int I long L float F double D void V Object L用&qu ...
随机推荐
- 理解java集合——集合框架 Collection、Map
1.概述: @white Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象)"丢进"该容器中. 2.Java集合大致可以分4类: @white Set ...
- PAT 甲级 1019 General Palindromic Number(简单题)
1019. General Palindromic Number (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN ...
- REDO 的内容:改变向量
REDO 的内容 ---改变向量 redo的内容并不是sql语句,他是放的一些改变,叫改变向量. 数据库恢复的时候并不是执行sql语句,而是一个物理的过程,是一个数据块的覆盖.是改变数据块的大小. 可 ...
- extern的原理很简单,就是告诉编译器:“你现在编译的文件中,有一个标识符虽然没有在本文件中定义,但是它是在别的文件中定义的全局变量,你要放行!”
extern的原理很简单,就是告诉编译器:“你现在编译的文件中,有一个标识符虽然没有在本文件中定义,但是它是在别的文件中定义的全局变量,你要放行!”
- log4j 日志相关
1.log 打印异常信息 Logger logger = Logger.getLogger(LoggerTest.class); //追踪产生此日志的类 Logger extends Categor ...
- 单独使用celery
单独使用celery 参考 http://docs.celeryproject.org/en/latest/getting-started/index.html https://www.jianshu ...
- NPOI 操作office、word、excel
下载地址为:http://npoi.codeplex.com/releases/view/616131 可以操作excel表,行,单元格内家及样式等. 使用示例: usin ...
- Windows Server 2016 下执行定时任务(英文系统)
Step1. 找到“控制面板(Control Panel)” 打开 “管理工具(Administrative Tools)” Step2. 打开“任务计划(Task Schedule)” Step3. ...
- ovs ovn 学习资料
0.A Primer on OVN http://blog.spinhirne.com/2016/09/a-primer-on-ovn.html 1.Open Virtual Networking W ...
- python线程间数据共享(示例演示)
``` import threading data_list = [] def task(arg): data_list.append(arg) print(data_list) def run(): ...