工作手记(一)

最近Android游戏的学习进度变得缓慢,主要上周有考试,然后就是实验室也在做一些东西。

实验室给我一个新的小项目,就是制作一个以U盘为依托的加密狗,并且与现在的产品集成。让我用一周的时间完成,一开始感觉挺麻烦的,试过以后发现还是比较简单,周五加今天就基本弄好了,主要是加密狗那块就用了一点点功能,然后就是实现Java代码调用C代码,这个其实我并不担心。毕竟在写Android游戏的时候也用过NDK,只是NDK编译比较傻瓜,直接用JNI会有些小麻烦,不过试下来还好,现在就记录于下。

在Windows里面,Java想调用C代码的话,C代码要编译成DLL文件,这个就与Android,Linux不同了,后者C代码要编译成SO文件,其实想想也是这样。

Java的那部分与NDK基本一样,就是在Java中加载DLL文件:

static{
       System.loadLibrary("ET199");
}

这个DLL文件必须放在工程的根目录下。

然后利用javah –jni XX 命令产生C的头文件,这个命令必须在src目录下执行。至于在C语言中关于jni的语法,参照Jni官方的Reference就可以了。

最后,就是利用VS2008生成DLL文件,这个是自己的一个盲区,以前竟然没有做过。今天正好学一下:

首先建立DLL工程,步骤如下:

文件-新建->项目->Win32项目->确定->下一步->DLL->空工程

然后将Java工程中的jni文件都加载进来,其次就是导入jni的头文件,这些文件在

\Java\jdk1.6.0_07\include

\Java\jdk1.6.0_07\include\win32

两个文件夹中,在工程中加入的过程为:工程->属性->C/C++->常规->附加包含目录

最后是将lib文件加入工程,步骤为:

工程->属性->连接器->常规->附加库目录

工程->属性->连接器->输入->附加依赖项

最后的最后,生成DLL文件!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值