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模拟指向指针的指针
            模拟指针
            类详解

  • 相关阅读:
    LeetCode 275. H-Index II
    LeetCode 274. H-Index
    LeetCode Gray Code
    LeetCode 260. Single Number III
    LeetCode Word Pattern
    LeetCode Nim Game
    LeetCode 128. Longest Consecutive Sequence
    LeetCode 208. Implement Trie (Prefix Tree)
    LeetCode 130. Surrounded Regions
    LeetCode 200. Number of Islands
  • 原文地址:https://www.cnblogs.com/attilax/p/5964060.html
Copyright © 2011-2022 走看看