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 ...
随机推荐
- Android搜索控件的基本使用方法
在Android中,搜索是一个非常核心的功能,我们可以通过它搜索到任意我们可以获得的信息.这些信息可以是存储在手机中的联系人.文件等信息,也可以是在网络上的资源. Android为了给用户提供良好的搜 ...
- js中的typeof name
js中的name 使用typeof name得到 string.. 因为name是全局变量,可以在任意浏览器中使用 . cosole.dir(window)查看.. console.log(type ...
- 【python】-- 类的创建、__new__、__metaclass___
类的创建 前面的随笔都是关于类的知识,通过类创建对象,那这个类到底是怎么产生的呢? 1. 传统创建类 class Foo(object): def __init__(self,name): self. ...
- ubuntu14 编译安装(升级)g++
编译安装(升级)g++ ubuntu14自带的g++为4.8.4,不支持c++11.现要将g++升至5.2.0 1.下载安装: 参考https://www.cppfans.org/1719.html ...
- 搜索过滤grep(win下为findstr)
搜索过滤grep(win下为findstr) 1.主要参数 [options]主要参数: -c:只输出匹配行的计数. -i:不区分大小写 -h:查询多文件时不显示文件名. -l:查询多文件时只输出包含 ...
- select * 为什么不好? limit 1 为什么好? --mysql SQL语句优化
问题一: Select * from student; 这种语句不好 我的理解:根据Innode存储引擎以及网上的各种资料所说的innodb的B+树索引结构可以分析出,当在非聚集索引列上搜索若用s ...
- Android Studio 启动时不自动打开项目
主界面中,选择单击菜单栏 File ,单击 Settings 选择 Appearance & Behavior 选项.选择System Settings选项.取消勾选Reopen last p ...
- SSH 公钥检查
SSH 公钥检查是一个重要的安全机制,可以防范中间人劫持等黑客攻击.但是在特定情况下,严格的 SSH 公钥检查会破坏一些依赖 SSH 协议的自动化任务,就需要一种手段能够绕过 SSH 的公钥检查. 首 ...
- 词性标注算法之CLAWS算法和VOLSUNGA算法
背景知识 词性标注:将句子中兼类词的词性根据上下文唯一地确定下来. 一.基于规则的词性标注方法 1.原理 利用事先制定好的规则对具有多个词性的词进行消歧,最后保留一个正确的词性. 2.步骤 ①对词性歧 ...
- c++ 11nullptr
1. 引入nullptr的原因 引入nullptr的原因,这个要从NULL说起.对于C和C++程序员来说,一定不会对NULL感到陌生.但是C和C++中的NULL却不等价.NULL表示指针不指向任何对象 ...