zoukankan      html  css  js  c++  java
  • 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.csdn.net/attilax

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

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


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

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

  • 相关阅读:
    从零开始搭建系统1.2——Nginx安装及配置
    从零开始搭建系统1.1——CentOs安装
    从零开始搭框架——系统架构
    从零开始搭建系统——前言
    PHP语法入门以及变量
    用PHP写出计算器
    PHP常量以及基本数据类型
    PHP入门了解
    php中搭建Web服务器和服务器配置
    JS中for,for...in,for...of以及foreach循环的用法
  • 原文地址:https://www.cnblogs.com/attilax/p/5964060.html
Copyright © 2011-2022 走看看