`
lfzhs
  • 浏览: 74733 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

JNA 应用小结

    博客分类:
  • JNI
阅读更多

 

(1) char类型

    Java里的Char是双字节的,对应C的类型是wchar_t!要对应c的char类型可以用byte

 

(2) 字符串处理

    const char*类型官方建议直接对应String类型,实际应用时对中文的编码问题老是处理不好!所以我这边用byte[]进行对应传入字符串时手工加个'\0',如: 

    str=str+"\0" ;fun(str.getBytes("Gb2312"));

 

(3) 结构体处理

     结构体指针参数:

    typedef struct _Point {

  int x, y;
} Point;

Point* translate(Point* pt, int dx, int dy);

 

   // Equivalent JNA mapping

class Point extends Structure { public int x, y; }
Point translate(Point pt, int x, int y);
...
Point pt = new Point();
Point result = translate(pt, 100, 100);

   结构体参数或结构体返回值

   typedef struct _Point {

  int x, y;
} Point;

Point translate(Point pt, int dx, int dy);

   // Equivalent JNA mapping

class Point extends Structure {
    public static class ByValue extends Point implements Structure.ByValue { }
    public int x, y;
}
Point.ByValue translate(Point.ByValue pt, int x, int y);
...
Point.ByValue pt = new Point.ByValue();
Point result = translate(pt, 100, 100);

   结构体数组参数

   // Original C code

void get_devices(struct Device[], int size);

   // Equivalent JNA mapping

int size = ...
Device[] devices = new Device[size];
lib.get_devices(devices, devices.length);

    返回结构体数组(指针)

    // Original C code

struct Display* get_displays(int* pcount);
void free_displays(struct Display* displays);

   // Equivalent JNA mapping

Display get_displays(IntByReference pcount);
void free_displays(Display[] displays);
...
IntByReference pcount = new IntByReference();
Display d = lib.get_displays(pcount);
Display[] displays = (Display[])d.toArray(pcount.getValue());
...
lib.free_displays(displays);

 

 

JNA管方地址: http://jna.java.net/

文档地址:  http://jna.java.net/javadoc/overview-summary.html

分享到:
评论

相关推荐

    JNA.jar与实例应用

    JNA.jar与实例应用 同时包含一个platform.jar辅助包 一个加密方法的实现、调用 以及一个使用注意说明

    java 使用jna开启关闭第三方应用程序.txt

    java使用jna开启关闭第三方应用程序,附简单的例子,打开一个记事本,朋友们也可以改为自己需要打开的应用程序

    JNA相关包 jna.jar

    JNA相关包

    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实例 JNA实例 JNA实例

    JNA实例=======================================================JNA实例

    jna-5.5.0.jar中文文档.zip

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

    JNA-5.7.0 jna-platform-5.7.0

    JNA-5.7.0 jna-platform-5.7.0

    jna-5.4.0.jar中文文档.zip

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

    jna-5.9.0.jar

    2021 最新JNA jar包,jna-5.9.0

    jna整合包-jna4.5.0+jna4.0.0.rar

    jna4.0.0.jar和jna-4.5.0 jar 两个jar包的整合

    JNA的API文档

    JNA的API文档

    jna-5.0.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.0.0.jar中文文档.zip

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

    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-5.10.0.jar中文文档.zip

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

    jna-4.5.2.jar中文文档.zip

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

    jna-4.4.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-4.2.2 官方原版下载

    Most simple questions will be answered on the list, but more complicated work, new features or target platforms can be negotiated with any of the JNA developers (this is how several of JNA's features...

Global site tag (gtag.js) - Google Analytics