paip.java 调用c++ dll so总结

paip.java 调用c++ dll so总结

///////JNA (这个ms sun 的)
我目前正做着一个相关的项目,说白了JNA就是JNI的替代品,以前用JNI需要编译一层中间库,现在JNA直接调用C的库
JNA的功能和P/Invoke类似,但编写方法与P/Invoke截然不同。JNA没有使用Annotation,而是通过编写一般的Java代码来实现。

P/Invoke是.NET平台的机制。而JNA是Java平台上的一个开源类库,和其他类库没有什么区别。只需要在classpath下加入jna.jar包,就可以使用JNA

JNA提供了一个动态的C语言编写的转发器,可以自动实现Java和C的数据类型映射。你不再需要编写那个烦人的C动态链接库。

当然,这也意味着,使用JNA技术比使用JNI技术调用动态链接库会有些微的性能损失。可能速度会降低几倍。但对于绝大部分项目来说,影响不大。

作者Attilax  艾龙,  EMAIL:1466519819@qq.com
来源:attilax的专栏
地址:http://blog.youkuaiyun.com/attilax

///////jnative 一个开源项目.

jnative java/jna  java
jna的量基本上是jnatv的10倍..


参考
Java调用.dll文件 - 抹去浮华,沉淀深度 - ITeye技术网站.htm (jnative)
学习JNA,Jnative个人总结 - 80后的梦想 - ITeye技术网站.htm
(impt)Java JNA 详解 - 梦想是奢侈品,向奢侈品进军 - 博客频道 - youkuaiyun.com.htm
本文原名《使用JNA方便地调用原生函数》发表于2009年3月的“程序员”杂志上。
[-]

    介绍
    实现原理
        调用原生函数
            使用JNA调用原生函数
            调用原生函数的模式
    和原生代码的类型映射
        和操作系统数据类型的对应表
        支持常见的数据类型的映射
    模拟结构体
        使用JNA调用使用Struct的C函数
            说明
        模拟复杂结构体
            结构体内部可以包含结构体对象的数组
            结构体内部可以包含结构体对象的指针的数组
    代码
        通过回调函数实现原生代码调用Java代码
        回调函数说明
    模拟指针
        使用PointerByReference模拟指向指针的指针
        模拟指针
        类详解

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值