`
tcspecial
  • 浏览: 897380 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JNA修改结构体

    博客分类:
  • java
阅读更多

   JNA返回结构体:
   在C++中返回一个大结构体比较耗资源的,不可取.一般可以通过传入指针或变量引用值, 在方法中修改达到返回结果的目的。
   java对象默认的是传地址引用,那么我们就可以在C中修改java对象后返回,减少对象传递时的性能损耗。

 

// 结构体定义
typedef struct _Point
{
	int x;
	int y;
}Point;

/**
 *方式一: 在C中传入结构体指针
 */
JNAAPI bool translate( Point *pt,int dx,int dy )
{
	pt->x=pt->x+dx;
	pt->y=pt->y+dy;
	return true;
}

/**
 *方式二: 在C中传入结构体引用
 */
JNAAPI bool translate( Point &pt,int dx,int dy )
{
	pt.x=pt.x+dx;
	pt.y=pt.y+dy;
	return true;
}

// Java代码
Point point=new Point();
point.x=20;
point.y=20;
JNALib.INSTANCE.translate(point, 10, 10);
System.out.println("Source: "+point.x+"\t"+point.y);
// 输出结果: 30 30

 

 

分享到:
评论

相关推荐

    JNA 复杂结构体传递

    JNA 复杂结构体传递 结构体数组,结构体指针 查询很多资料才整合!

    java通过jna返回结构体例子.rar

    java通过jna调用c返回结构体例子,就是解决c语言返回结构体,java用类对象接收,包含jar包,java文件,c文件,操作步骤文档,在linux下完美通过

    JNA 转java接口以及指针结构体解析

    经过几天的奋战,终于让我搞懂了JNA的解析以及指针在结构体中的应用!!!下了很多的资料,里面包含c++的.h头文件,给需要帮助的人看看!! 里面包含代码以及解析过程。

    深入解析JNA—模拟C语言结构体

    深入解析JNA—模拟C语言结构体

    Java调用C语言动态库(JNA方式):回调函数、结构体数组传参、结构体数组返回-附件资源

    Java调用C语言动态库(JNA方式):回调函数、结构体数组传参、结构体数组返回-附件资源

    如何使用JNA调用本地C/C++动态链接库详细示例代码

    详细演示了如何通过JNA实现以下形式的动态链接库接口: 1:基本数据类型 2:基本数据类型的指针和引用 3:结构体 4:结构体的指针和引用 5:函数指针和回调函数 6:字符串指针 7:输入一个数组 8:输出一个数组并...

    c++ 使用结构体的引用形式进行函数的传参操作

    将多个变量放到一个结构体中,减少函数传递时的多个参数传进传出的复杂性 结构体传进函数时,是以引用的形式传入的,不是以指针的形式。

    jna-4.5.1 , jna-4.5.1-sources , jna-platform-4.5.1 jar包

    jna-4.5.1 , jna-4.5.1-sources , jna-platform-4.5.1 jar包 JNA全称Java Native Access,是一个建立在经典的JNI技术之上的Java开源框架(https://github.com/twall/jna)。JNA提供一组Java工具类用于在运行期动态...

    JNA 回调 范例 C++异步回调实现

    这几天搞搞JNA,主要是组内小弟靠不住。 找了下资料,居然没有回调函数的样例,郁闷的我不行,于是就自己折腾一晚上,自己实现一个。 C++部分使用ACE实现了一个线程,线程中调用Java部分的回调函数。 C++使用vc8...

    qttcpsocket传送结构体

    QT TCP SOCKET SEND RECIEVE STRUCT SERVER CLIENT 看见这几个关键字了,应该知道是啥东西。

    jna-5.5.0.jar中文文档.zip

    # 【jna-***.jar中文文档.zip】 中包含: 中文文档:【jna-***-javadoc-API文档-中文(简体)版.zip】 jar包下载地址:【jna-***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【jna-***.jar Maven依赖...

    jna-5.4.0.jar中文文档.zip

    # 【jna-***.jar中文文档.zip】 中包含: 中文文档:【jna-***-javadoc-API文档-中文(简体)版.zip】 jar包下载地址:【jna-***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【jna-***.jar Maven依赖...

    jna-5.0.0.jar中文文档.zip

    # 【jna-***.jar中文文档.zip】 中包含: 中文文档:【jna-***-javadoc-API文档-中文(简体)版.zip】 jar包下载地址:【jna-***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【jna-***.jar Maven依赖...

    jna-4.0.0.jar中文文档.zip

    # 【jna-***.jar中文文档.zip】 中包含: 中文文档:【jna-***-javadoc-API文档-中文(简体)版.zip】 jar包下载地址:【jna-***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【jna-***.jar Maven依赖...

    jna-5.6.0.jar中文文档.zip

    # 【jna-***.jar中文文档.zip】 中包含: 中文文档:【jna-***-javadoc-API文档-中文(简体)版.zip】 jar包下载地址:【jna-***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【jna-***.jar Maven依赖...

    jna-5.10.0.jar中文文档.zip

    # 【jna-***.jar中文文档.zip】 中包含: 中文文档:【jna-***-javadoc-API文档-中文(简体)版.zip】 jar包下载地址:【jna-***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【jna-***.jar Maven依赖...

    jna-4.1.0-API文档-中文版.zip

    赠送jar包:jna-4.1.0.jar; 赠送原API文档:jna-4.1.0-javadoc.jar; 赠送源代码:jna-4.1.0-sources.jar; 赠送Maven依赖信息文件:jna-4.1.0.pom; 包含翻译后的API文档:jna-4.1.0-javadoc-API文档-中文(简体)版...

    jna-4.3.0-API文档-中文版.zip

    赠送jar包:jna-4.3.0.jar; 赠送原API文档:jna-4.3.0-javadoc.jar; 赠送源代码:jna-4.3.0-sources.jar; 赠送Maven依赖信息文件:jna-4.3.0.pom; 包含翻译后的API文档:jna-4.3.0-javadoc-API文档-中文(简体)版...

    jna-4.5.2.jar中文文档.zip

    # 【jna-***.jar中文文档.zip】 中包含: 中文文档:【jna-***-javadoc-API文档-中文(简体)版.zip】 jar包下载地址:【jna-***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【jna-***.jar Maven依赖...

Global site tag (gtag.js) - Google Analytics