java通过jni调用虚拟游戏控制器vjoy
来源:互联网 发布:python快速排序 编辑:程序博客网 时间:2024/05/18 00:58
这几天打算做个游戏方向盘之类的,找到了vjoy,安装后会虚拟出1到16个游戏控制器,每个游戏控制器最多支持8轴128键,还有力反馈什么的,提供有skd可以编写client端控制这些游戏控制器的各个轴、按钮等,这样,可以把手机、键盘、鼠标之类的模拟成游戏手柄、方向盘、飞行控制器等。
目前sdk只支持c++和c#,不支持java,这里用jni做了java端的调用类,大概过程:
1. 新建类com.superzlc.vjoy.VJoy用于控制vjoy,看sdk里的示例和头文件,确定哪些方法需要放到vjoy,把方法改成java版的,写到VJoy,标记native。
2. 到class根目录用javah com.superzlc.vjoy.VJoy生成头文件com_superzlc_vjoy_VJoy.h,
3. 用的vs2010,新建win32应用程序工程,新建向导中会有些设置:应用程序为dll,附加选项勾选导出符号
4. 然后是复制和添加com_superzlc_vjoy_VJoy.h,还有jni的头文件,vjoy的头文件及lib文件
5. 新建或使用已有cpp文件,开始实现com_superzlc_vjoy_VJoy.h里的方法。
一些点:
javah遇上不能解析的字符了,因为java文件是utf-8的有汉字,简单点直接去掉汉字做的。
VJoy里的方法最开始可能列不全或有些参数错误,那同步修改VJoy、com_superzlc_vjoy_VJoy.h、及实现方法。
vjoy的lib文件分32位和64位,这里直接添加进来的,只用了64位,那编32位得换一下。
jni的c++类型,jboolean jint等,看定义,一些直接能与对应类型转换,对象则需要类似反射的方法,字符串的复杂些查资料。
最后编译出一个dll,把他与sdk里其他的dll一起放到windows文件夹里(不是必须windows),调用VJoy测试正常。
相关文件下载地址:http://download.csdn.net/detail/superzlc/9769506
- java通过jni调用虚拟游戏控制器vjoy
- Java通过JNI调用CUDA
- java 通过jni调用tuxedo
- java 通过jni调用dll
- C++ 通过JNI调用Java
- Java通过JNI调用C++
- java通过jni调用c++
- java通过jni调用tuxedo
- Java通过JNI调用C++
- Cocos2d-x游戏开发之Cocos2dx通过JNI调用Android的Java代码(webView实例)
- JNI: JAVA通过JNI调用另一个JAVA类的方法
- Java通过JNI调用本地DLL
- java通过jni调用C程序
- JAVA通过JNI调用DLL问题
- Java通过JNI调用CUDA矩阵乘法
- delphi调用java类(通过jni.pas)
- Android JNI通过C++调用JAVA
- Java通过JNI调用Tuxedo方法
- 虚拟机桥接模式下设置静态IP地址无法上网
- 我们离DevOps多远?
- wargame.kr 大部分writeup
- (Java学习笔记11) 快速查询
- DevOps使用
- java通过jni调用虚拟游戏控制器vjoy
- hdu 1754 线段树单点更新求最值
- leetcode
- poj 2531 Network Saboteur
- 基于threejs 的webvr
- python爬虫系列三:爬取糗百成人的妹子图片(scrapy框架+正则)
- 调用非jni标准的第三方so(AS2.2)
- Android gradle 版本问题
- java web