JNI

java里调用C的接口,以前只是了解java里有个native,调用本地类,做了个例子,具体方法就是利用java中的JNI(java native interface),创建一个java类,在这个类中声明要用到的C中的函数,不必在此将其实现,格式 public native int getFun();然后把他放到C盘的根目录下(这样主要是为了在CMD中好编译),然后用javac Test将其编译成class,再用javah Test将其打成C的.h头文件,然后建一个C的dll(Dynimic link library)工程,实现头文件中定义的那些函数,要注意,C中的函数名要和.h中要用到的函数的名子一样,将这个做好的工程build成一个DLL文件(生成的DLL文件在工程所在文件夹的DEBUG中)
我测试的时候把他放在了C盘的一个文件夹下,然后设置PATH,把这个动态连接库的上一级目录定义到PATH中(如果把.DLL也写进去会报错的),测试的时候在这个java类中写个main()函数对其行测试,在这个java类中就可以调用这些函数,就像调本类的函数一样,能将这个类中的东西进行输入输出.

创建一个OCX工程,在C++编译器中建立一个MFC..的工程(第一个MFC的,没记住后面的名子,不过开一下编译器就可以看到了),建一个Interface.h文件,把要用到的函数定义到里面去,在建好的工程中左侧的目录中的第一个类处,点击右键创建要调用的方法,这样会在XXXXXctl.cpp中的最后创建出这个方法,在XXXXXctl.cpp中调用这个函数所在的那个.DLL文件(例如BatchScan.dll),调用其中用batchScan()方法,编译成功后在这个工程所在文件夹下的release文件夹中会自动生成.OCX文件,这就是得要得到的,重要的是这其中又用到了那个.DLL文件,所以我没做出来.
我直接用就得了,把这个BatchScan.ocx文件放到了我安装的那三个本接接口的Interface文件夹中,覆盖了其中的一个相同的文件,再注册一下,第三个接口中的一个.bat的文件,我在WEB(这个.htm文件是以前他们做的一个很多按钮的东西,我用的只是在其加的一个按钮,看懂他的用法,把我用的东西移到我做好的手工录入工作站中)中就可以调用了.---20070701
JNI语法 JNI参考 JNI函数大全 原文地址:JNI语法 JNI参考 JNI函数大全 内容太多,请按Ctrl+F查找你需要的信息。   一、对照表 Java类型    本地类型         描述 boolean    jboolean       C/C++8位整型 byte       jbyte          C/C++带符号的8位整型 char       jchar          阅读详情

相关推荐

JNI核心头文件:jni.h与jni_md.h深入解析

jni.hjni.h定义了一系列关键数据类型和宏,以便开发者可以创建和操作Java对象。关键数据类型包括jclassjmethodIDjobjectjstring等,它们用于引用Java对象的类、方法、实例和字符串。宏定义则允许直接操作这些类型,例如获取对象的字段值,调用方法等操作。jni_md.hjni_md.h中定义了各种特定于平台的函数,这些函数使得开发者可以在不深入了解底层细节的情况下,实现本地代码与平台特有的功能之间的交互。例如,getpid()

weixin_42124497的博客 1330

Android JNI详解

Android使用JNI的原理解析

疯过无痕的博客 8477

1788445834680.apk

1788445834680.apk

android jni (jni_onload方式)

JNIJava Native Interface),Java本地接口,是为方便java调用C或者C++等本地代码所封装的一层接口。由于Java的跨平台性导致本地交互能力不好,一些和操作系统相关的特性Java无法完成,于是Java提供了JNI专门用于和本地代码交互。 NDK(Native Development Kit),是android提供的一个工具合集,帮助开发者快速开发C(或C++)的动态库,并能自动将.so和java应用一起打包成apk。NDK集成了交叉编译器(交叉编译器需要UNIX或LINUX系统

qq_33782617的博客 1万+

JNI/NDK入门指南之JNI访问数组

        JNI/NDK入门指南之JNI访问数组   在前面的章节JNI/NDK入门指南之JNI字符串处理中讲解了JNI对字符串的处理流程。今天我们继续向JNI的知识海洋进军讲解JNI对数组的处理。本章内容有点多哦! 前言 JNI 中的数组分为基本类型数组和对象数组,它们的处理方式是不一样的,基本类型数组中的所有元素都是 JNI的基本数据类型,可以直接访问。而对象数组中的所有元素...

IT先森 4570

JNIJNI基础语法

本文详细介绍了JNIJava Native Interface)的核心语法与Java交互方法。首先对比了C和C++JNI中的差异:C++需用extern "C"避免名称修饰,且JNIEnv的调用方式不同(C用(*env)->,C++用env->)。其次,讲解了JNI数据类型,包括基本类型(如jint、jboolean)和引用类型(如jobject、jstring),并区分了局部引用、全局引用和弱全局引用的使用场景。此外,文章详细说明了字符串和数组的操作方法,如NewStringUTF创建字符串、Ge

little_fat_sheep 1140

JNI编程】JNI异常

Java中异常处理非常简单,我们直接在Java代码中try…catch…即可。假设使用JNI技术在native代码中调用Java方法,而这个Java方法有可能抛出异常,如何在JNI中进行异常处理呢?我们又想在JNI中抛出异常具体怎样操作?这些问题都会在JNI编码中进行涉及。 一、API回顾 1.1 Throw jint Throw(JNIEnv *env, jthrowable obj); 导致...

洪伟的专栏 2111

JNI编程—JNI基础

什么是JNI,怎么使用 JNI——Java Native Interface,它是Java平台的一个特性(并不是Android系统特有的)。其实主要是定义了一些JNI函数,让开发者可以通过调用这些函数实现Java代码调用C/C++的代码,C/C++的代码也可以调用Java的代码,这样就可以发挥各个语言的特点了。那么怎么使用JNI呢,一般情况下我们首先是将写好的C/C++代码编译成对应平台的动态库(windows一般是dll文件,linux一般是so文件等),这里我们是针对Android平台,所以只讨论so

G的博客 1845

JNI开发之JNI原理

在上一篇文章中对JNI简单介绍了,在这篇文章中将对JNI原理进行介绍。本篇文章将以JNI执行环境、JNI数据类型、JNI注册方式、JNI引用、JNI变量共享以及JNI调用方式来介绍JNI原理。   一、执行环境(Runtime)     在计算机中,每种编程语言都有一个执行环境(Runtime),执行环境用来解释执行语言的语句。     在JNI开发中有两个比较重要与执行环境Runtim

chewbee的专栏 1966

双立柱油脂加注机.rar

双立柱油脂加注机.rar

食品包装礼品包装设备.rar

食品包装礼品包装设备.rar

全自动iphone贴膜机3.rar

全自动iphone贴膜机3.rar

运动员运动表现纵向数据集

纵向运动员运动表现数据集包含250名运动员10000条训练会话重复观测记录,涵盖篮球、排球、足球、跑步、游泳和无损伤跑步者六个运动类别。包括速度、加速度、反应时间、准确性、耐力、力量、敏捷性等表现变量,以及训练负荷、疲劳、恢复和训练成效指标。用于研究和实验分析。

曲轴箱加工专机.rar

曲轴箱加工专机.rar

MATLAB中读写Zarr文件的接口。Zarr是一种用于科学数据的文件格式(类似于HDF5和netCDF),在云存储和并行计算环境中进行了优化.rar

MATLAB中读写Zarr文件的接口。Zarr是一种用于科学数据的文件格式(类似于HDF5和netCDF),在云存储和并行计算环境中进行了优化.rar

YOLO算法人像特写场景手势目标检测数据集-106张-包含 VOC 和 Yolo 格式标签-支持多种算法训练模型.zip

下拉可见数据集可视化效果示意。 YOLO人像特写场景手势目标检测数据集 目标类别:['peace', 'shaka', 'thumbsup'] 中文类别:['和平手势', '夏威夷手势', '竖起大拇指'] 训练集:79 张 验证集:16 张 测试集:11 张 总计:106 张 该数据集提供了data.yaml文件,内容如下: train: ../train/images val: ../valid/images test: ../test/images nc: 3 names: ['peace', 'shaka', 'thumbsup']

切线机.rar

切线机.rar

上一篇: 关于tomcat 5.0以上版本
下一篇: abator用法
sunj2007
博客等级 码龄19年 6粉丝 173原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值