- 浏览: 365563 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (186)
- J2EE (46)
- spring (4)
- Applet (7)
- 网页前端 (10)
- 生活与工作 (55)
- 开放的世界 (10)
- linux (16)
- j2me (2)
- android (5)
- ExtJS (1)
- 架构师与设计 (7)
- 开发平台 (2)
- Eclipse (4)
- 教育 (0)
- 数据库 (9)
- English (1)
- Jetty (2)
- 未分类 (1)
- 工具 (2)
- flex (2)
- synchronized (1)
- maven (2)
- command (0)
- shell (1)
- web (1)
- qq (3)
- wine (3)
- chrome (1)
- extensions (1)
- plugin (1)
- 插件 (1)
- ssh (1)
- 内网 (1)
- J2EE excel (1)
- ubuntu (4)
- storm (2)
- hadoop (1)
最新评论
-
skzr.org:
jdbc:mysql://localhost:3306/?us ...
storm topology all in one spring文件合并 -
chenghong726:
你好,我用你这个方法,上传文件72M一直卡在 mapper.s ...
超大excel读取 43万记录 26M文件 -
海hai:
您好我对这篇文章很敢兴趣可以和你请教下吗?我qq9034418 ...
淘宝top自动授权页面,方便大家调试top应用 -
skzr.org:
首先感谢你的关注:)yaerfeng1989 写道最代码上有更 ...
[MAVEN]web工程的调试 -
skzr.org:
最新消息2013-12-17:腾讯再次弹出消息,我的QQ201 ...
ubuntu 12.04安装QQ2012
Thanks for your help :)
windows xp x86, jdk 1.6.20
hellojna dll project
hellojna.h
extern "C" _declspec(dllexport) int swapvalue(int* a, int* b); extern "C" _declspec(dllexport) int rf_select1(unsigned char *_Size); extern "C" _declspec(dllexport) int rf_select2(unsigned char *_Size,long icdev); extern "C" _declspec(dllexport) int rf_select3(long icdev, unsigned char *_Size);
hellojna.cpp
#include "stdafx.h" #include "hellojna.h" int rf_select1(unsigned char *_Size) { _Size[0] = 'a'; return 12; } int rf_select2(unsigned char *_Size, long icdev) { _Size[0] = 'a'; return 12; } int rf_select3(long icdev, unsigned char *_Size) { _Size[0] = 'a'; return 12; }
HelloJna.java
public interface HelloJna extends Library { HelloJna instance = (HelloJna) Native.loadLibrary("hellojna", HelloJna.class); int rf_select1(byte[] abd); int rf_select2(byte[] abd, long dev); int rf_select3(long dev, byte[] abd); }
Test.java
public class Test { /** * @param args */ public static void main(String[] args) { HelloJna jna = HelloJna.instance; byte[] buf = new byte[]{'s', 'u', 'p', 'e', 'r', ' ', 'm', 'a', 'n', '\0'}; int ret = jna.rf_select1(buf); System.out.println("buf=" + new String(buf) + ",ret=" + ret); buf[0] = 'I'; ret = jna.rf_select2(buf, 77); System.out.println("77 buf=" + new String(buf) + ",ret=" + ret); buf[0] = 'E'; ret = jna.rf_select3(99, buf); System.out.println("99 buf=" + new String(buf) + ",ret=" + ret); } }
console.out:
buf=auper man , ret=12 77 buf=auper man ,ret=12
the screen capter:
why rf_select1 and rf_select2 is right but rf_select3 is error ??
the differences is just the paramters order??
in the rf_select3 _Size is null
buf[0] = 'E'; ret = jna.rf_select3(99, buf);
2010-09-15 00:13 add info:
I found it's work good when HelloJna.java change rf_select3(long dev, byte[] abd) to rf_select3(NativeLong dev, byte[] abd)
public interface HelloJna extends Library { HelloJna instance = (HelloJna) Native.loadLibrary("hellojna", HelloJna.class); int rf_select1(byte[] abd); int rf_select2(byte[] abd, long dev); int rf_select3(NativeLong dev, byte[] abd); }
评论
2 楼
skzr.org
2012-09-05
duduli 写道
https://github.com/twall/jna/blob/master/www/Mappings.md
官方文档上写了:long long 类型才对应java的long类型。
官方文档上写了:long long 类型才对应java的long类型。
莫非是这个问题,看了这个映射表,long long以前好像没有这个东西,不过当时是在32位winxp下开发测试的。
1 楼
duduli
2012-09-04
https://github.com/twall/jna/blob/master/www/Mappings.md
官方文档上写了:long long 类型才对应java的long类型。
官方文档上写了:long long 类型才对应java的long类型。
发表评论
-
答复: 再谈一个关于final的不一致编译的低级错误
2012-09-25 09:13 1077tlde_ti 写道 我是觉得连依赖管理工具都不用的项目实在 ... -
[MAVEN]web工程的调试
2011-12-18 21:48 4106接上篇:[MAVEN]maven最佳实践 mav ... -
[jetty]jetty学习
2011-12-27 16:19 2536Jetty源码学习 图源码:jetty.dia ... -
[jetty]start.jar启动
2011-12-27 16:16 2747概图 关键点 org.eclipse.jetty ... -
在java中怎样执行系统命令?
2011-12-05 00:12 0linux比较容易实现,windows下问题千奇百怪。 ... -
[MAVEN]maven最佳实践
2011-12-06 11:00 2234参考资料: 官方:http://maven.ap ... -
java点滴
2011-11-25 00:18 0main静态方法调用: 意思的在method ... -
[java]synchronized我的理解
2011-11-18 21:56 1816多线程、同步、锁,搞 ... -
tomcat攻略
2011-07-23 10:51 6885以下是常见的tomcat配置和问题 以下总结来自实践(OS: ... -
[web工程]Struts2+Spring3.1+Hibernate3.6的集成
2011-05-20 00:32 2020背景:如果选择struts2+Spring+Hibernate ... -
[web工程]集成struts2 mvc
2011-05-20 00:30 2165返回:[web工程]Struts2+Spring3 ... -
[web工程]集成hibernate
2011-05-20 00:28 1472返回:[web工程]Struts2+Spring3.1+ ... -
[web工程]创建web工程
2011-05-19 21:30 1964返回:[web工程]Struts2+Spring3.1+Hib ... -
[分享][Hibernate]公用DAO
2011-05-15 23:27 1968通过Hibernate的元信息处理组件等等,利用spring封 ... -
[经验][hibernate][自定义类型]hibernate 3.6.3中自定义类型,json类型
2011-05-14 12:05 1452首先感谢您百忙之中的阅读 :) 下面进入正题 在3. ... -
hibernate和jdbc加载对象性能
2011-05-03 21:49 1985skzr.org 写道 core2 P8400 ... -
java远程调用通讯协议比较
2011-04-12 16:11 1525我的测试: 环境: 使用spring做为粘合剂 ... -
svn经验
2011-03-30 12:55 1429一下内容摘录自自己的wiki,所以链接可能有问题! 目录 ... -
完善包注释[javadoc package-info.java]
2011-03-27 14:03 6474包级注释 说明: 包级注释,有时候是非常有用的,可以清晰的 ... -
Tomcat7新特性?cookie HttpOnly的那些事(sessionid获取麻烦了)
2011-03-26 10:46 13207环境: tomcat6和tomcat7, ...
相关推荐
后端面试清单、流程以及问题顺序 根据提供的文件信息,我们可以总结出以下知识点: 面试清单 * 自我介绍 * 离职的原因 * 问答环节场景题 PHP * 一次性插入 100w 数据的处理办法 * PHP7 的特性,为什么 PHP7 比 ...
6.1 我在一个源文件中定义了chara[6],在另一个源文件中声明了externchar*a。为什么不行? 6.2 可是我听说chara[]和char*a是等价的。是这样的吗? 6.3 那么,在C语言中“指针和数组等价”到底是什么意思? 6.4...
4.5 我有一个char *型指针碰巧指向一些int型变量,我想跳过它们。为什么((int *)p)++; 这样的代码不行? 47 4.6 为什么不能对void *指针进行算术操作? 47 4.7 我有些解析外部结构的代码,但是它却崩溃了,显示...
o 7.1 我在一个源文件中定义了 char a[6], 在另一个中声明了 extern char *a 。为什么不行 ? o 7.2 可是我听说 char a[ ] 和 char *a 是一样的。 o 7.3 那么, 在 C 语言中 ``指针和数组等价" 到底是什么意思 ? ...
- **if/else语句**:当条件为真时执行一个代码块,否则执行另一个代码块。 - **布尔代数**:涉及逻辑运算的基本概念,如AND、OR、NOT等。 - **switch语句**:基于变量的不同值选择执行不同的代码块。 ##### 5. 深入...
- **增强代码的安全性**:防止意外地修改变量,减少bug的产生。 - **提高代码的可读性**:明确表明某些数据不应该被修改。 - **优化编译器性能**:编译器可以对某些const变量进行优化。 示例代码: ```c #include ...
44. **一个.java文件中的类数量**:一个文件只能有一个public类,但可以有多个非public类。 45. **Java内存泄漏**:虽然有垃圾回收,但不合理使用可能导致内存无法释放。 46. **多态的机制**:通过方法的重写和向上...
- **双向链表**中的节点有两个指针,一个指向下一个节点,一个指向前一个节点。 - 链表的优点在于动态扩展性和高效地插入和删除操作。 --- **4. 结构化程序设计的三种基本结构** - **选项分析:** - A) 顺序...
- **赋值**: 将一个值赋给一个变量的操作。 - **表达式**: 由常量、变量、操作符组成的组合,可以计算出一个结果。 - **字符类型与字符编码**: 字符类型如`char`用于存储单个字符;字符编码如ASCII或Unicode定义了...
### 数据结构实验报告知识点概述 本实验报告主要探讨了如何使用C语言中的顺序表来实现一个简易的学生信息...此外,本实验还提供了一个良好的平台来探索和调试代码中的潜在问题,有助于提高编程技巧和问题解决能力。
4.3 我有一个char * 型指针正巧指向一些int 型变量, 我想跳过它们。 为什么如下的代码((int *)p)++; 不行? . . . . . . . . . . . . . . 17 4.4 我有个函数,它应该接受并初始化一个指针void f(int *ip) f static ...
- **main**:是Java程序的入口点,所有Java程序都必须有一个`main`方法。 - **class**:用于定义一个新的类。类是Java中面向对象编程的基本单位。 - **system**:提供对操作系统特定功能的访问,如系统时间、环境...
1. **public**:在Java中,`public` 是一个访问修饰符,它允许类、方法或变量在任何地方被访问,无论是同一个包还是不同包。 2. **static**:`static` 关键字用于创建类级别的变量和方法,它们不属于类的实例,而是...
17. **Boolean**:`Boolean`是Java中的布尔类型,有`true`和`false`两个值。 18. **true** 和 **false**:表示逻辑上的真和假。 19. **if** 和 **else**:`if`用于条件判断,`else`提供与`if`相反的执行路径。 20...