`
fenger_chui
  • 浏览: 104418 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JNative使用深入解析——传递复杂结构体

阅读更多

在这一章中,首先给出以下的一个链接,相信看完这篇文章你就知道如何传递呢。

http://jnative.free.fr/SPIP-v1-8-3/article.php3?id_article=10

在这里我要补充的是在往pointer放入值时可能出现字节匹配不上,导致乱序的现象,出现这种问题的原因是字节对齐所惹的祸。

关于字节对齐的详解如下:

http://blog.csdn.net/xuxinshao/article/details/2244277

在这里比如有如下的结构体:

Struct ss

{

int a;

short b;

short c

}

如果字节按照4个字节来对齐,那么b应该分到4个字节,C就应该从第八个字节开始,在进行pointer设置的时候,应该是pointer.setShortAt(8,c).而不是pointer.setShortAt(6,c).

1
2
分享到:
评论
2 楼 lijunwyf 2016-08-30  
http://jnative.free.fr/SPIP-v1-8-3/article.php3?id_article=10 访问不了
1 楼 kevin123de123 2015-03-21  
楼主不应该还是从6开始么,a占用的字节 0x0000-0x0003,0x0004%2为0符合规则不是?

相关推荐

    jnative简单的使用

    JNative是一个开源的Java本地接口(JNI)工具包,它简化了Java程序与本地代码之间的交互过程,使得开发者无需深入理解复杂的JNI接口就能实现跨语言调用。 **1. JNative的原理** JNative的核心是基于JNI(Java ...

    jnative使用方法总结

    jnative使用方法总结jnative使用方法总结jnative使用方法总结

    JNative使用示例

    TestJNative_Eclipse.rar 为MyEclipse工程 JNativeTest_VC.rar为VC ...主要写了一些JNative调用DLL的例子,包含了JNative回调函数的用法与指针的用法,以供参考,希望对使用JNative的开发人员有帮助 有问题大家一起讨论

    JNative api说明文档

    JNative在此基础上进行了封装,简化了开发者直接使用JNI时的复杂性,例如处理函数指针、数据类型转换等。在JNative中,开发者可以通过Java方法调用本地函数,就像调用Java方法一样方便。 **三、JNative API核心概念...

    JNATIVE应用

    本文将深入探讨如何使用JNI在Java程序中调用本地方法,特别是涉及整型值、结构体、数组的传递等基础和进阶应用。 ### 1. 传递整数值 在JNI中,传递整型值是非常基本的操作。Java中的int类型在JNI中对应为`jint`,...

    在Java程序中使用JNative调用dll文件

    JNative则是一个简化JNI使用的库,它提供了一些预定义的接口和类,使得开发者无需直接处理JNI的底层细节,如头文件的生成、JNI函数的定义等。JNative的核心是它的`callXXX`系列函数,例如`callStaticVoidMethod`、`...

    org.xvolks.jnative 源码

    《深入解析org.xvolks.jnative源码》 在Java世界中,为了实现与本地代码的交互,开发者经常需要借助JNI(Java Native Interface)技术。然而,JNI的使用门槛相对较高,涉及到C/C++编程,这给许多Java开发者带来了...

    linux jnative 调用.so方法及附属全部库和源码

    //以下部分使用qt编译到so,注意在函数声明前加 extern "C" //如extern "C" const char* getLocalHost(); JNative getstring = new JNative("libmylib.so", "getstring"); getstring.setRetVal(Type.STRING); ...

    Jnative资源包源码

    Jnative简化了JNI的复杂性,让开发者可以更专注于功能实现,而非底层细节。Jnative主要由两部分组成:Java库和本地库,两者协同工作,使得Java程序能够无缝调用本地代码。 二、Jnative的工作原理 1. JNI接口:JNI...

    JNative.jar以及JNative源码

    《深入理解JNative:Java调用DLL的桥梁》 在Java世界中,由于其平台无关性的特性,直接调用本地动态链接库(DLL)并非易事。然而,JNative库的出现,为Java程序员提供了一个方便的解决方案,使得Java能够无缝地与C/...

    JNative综合学习资料

    JNative可以与其他Java库如Apache Commons、JNA(Java Native Access)等结合使用,以实现更复杂的功能。理解如何将JNative与其他工具结合,能进一步提升开发效率。 总之,“JNative学习资料”是学习和掌握Java与C/...

    JNative v1.3 docs

    jnative包用于调用dll动态库,目前(2011-12-20)最新版本为1.4RC2,官方正式版本文档为1.3,详见官方地址: http://jnative.free.fr/docs/ 这是最新的帮助文档HTML离线包,希望对大家有帮助 Packages org.xvolks....

    jnative.rar

    本文将深入探讨JNative的工作原理、使用方法以及其在实际应用中的价值。 首先,JNative是一个Java Native Interface(JNI)的包装器,它简化了Java程序与本地代码之间的交互过程。JNI是Java官方提供的一个接口,...

    使用JNative对条码打印机进行打印(转别人)

    这大大减少了使用JNI时的复杂性,因为JNI通常需要创建一个C/C++的桥接代码来连接Java和本地库。 以下是使用JNative调用条码打印机驱动的基本步骤: 1. 获取JNative库:首先,你需要下载JNative的最新版本,例如...

    jnative

    使用这个库,开发者可以在Java代码中通过简单的接口调用C++函数,而无需深入理解JNI的底层细节。 4. **JNI函数注册**:在C++的DLL或共享库中,需要使用JNI定义的函数注册表来声明和导出可供Java调用的函数。这些...

    JNative.jar

    JNative.jar正是这样一款工具,它为Java程序员提供了与本地代码交互的能力,无需深入理解JNI的复杂细节,即可轻松实现Java与本地代码的整合。 一、Java Native Interface(JNI) JNI是Java平台标准的一部分,它...

    jnative调用动态库

    标题中的“jnative调用动态库”指的是Java中使用JNative库来调用本地(操作系统级别的)动态链接库(DLL或SO文件)的技术。在Java中,为了与操作系统底层功能进行交互,比如调用C/C++编译的库,我们可以使用Java ...

    jnative源码和文档,包含JNativeCpp.dll和libJNativeCpp.so

    《深入解析JNative:连接Java与C++的桥梁》 JNative,作为一款强大的库,为Java程序员提供了与C++代码交互的能力。它允许Java应用程序调用C++编写的动态链接库(DLL或.so),从而扩展了Java的功能,特别是在处理...

    JNative Java调用动态链接库jar包

    4. **参数传递**:JNative处理Java对象到C/C++数据类型的转换,确保参数能正确传递给本地函数。 5. **返回值处理**:本地函数执行完毕后,JNative会将返回值从C/C++类型转换为Java类型,以便Java代码能直接使用。 ...

Global site tag (gtag.js) - Google Analytics