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的更多相关文章

  1. 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 ...

随机推荐

  1. PageCache 在查询中的作用很大

    百度Elasticsearch-产品描述-介绍-百度云 https://cloud.baidu.com/doc/BES/FAQ.html#.51.46.57.73.73.7E.71.4C.6F.AA. ...

  2. event chrome firefox 获取点击对象的 id 类

    <!doctype html><html lang="en"><head> <meta charset="UTF-8" ...

  3. 我的Android进阶之旅------>解决Error:Could not find property 'compile' on org.gradle.api.internal.artifacts.

    1错误描述 解决方法 1错误原因 2解决方法 1.错误描述 刚刚,Android Studio突然编译不了了,报了如下错误: Error:Could not find property 'compil ...

  4. linux c编程:互斥锁

    们常说互斥锁保护临界区,实际上是说保护临界区中被多个线程或进程共享的数据.互斥锁保证任何时刻只有一个线程在执行其中的代码. 互斥锁具有以下特点: ·原子性:把一个互斥锁定义为一个原子操作,这意味着操作 ...

  5. 阿里云配置mysql远程连接

    默认是不能用客户端远程连接的,阿里云提供的help.docx里面做了设置说明,mysql密码默认存放在/alidata/account.log 首先登录: mysql -u root -h local ...

  6. Appium 输入中文

    文章出处 http://www.cnblogs.com/ljfight/p/6089163.html 在做app自动化过程中会踩很多坑,咱们都是用中文的app,所以首先要解决中文输入的问题!本篇通过屏 ...

  7. jquery jsonp请求错误处理

    jQuery将ajax方法进行了封装,jsonp可以轻松实现跨域请求. $.ajax({type: 'GET', url: "<%= SysUtils::TASK_CENTER_URL ...

  8. EXSITS应该怎么用?

    无论是做项目还是普通使用SQL,我们通常都会使用IN.因为很好理解,也很方便.但是,面对着多层查询嵌套,或者IN关键字里面的结果集数量巨大,查询的效率就会直线下降.这时候,我们应该用好EXSITS. ...

  9. java sql解析

    https://github.com/JSQLParser/JSqlParser 淘宝博客:http://www.searchtb.com/category/%E6%90%9C%E7%B4%A2%E5 ...

  10. case的嵌套使用

    case分支语句的格式如下: case $变量名 in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; *) 默认执行的命令序列     ;; esac case语句结构特点如下: 1.    ...