java通过jni调用虚拟游戏控制器vjoy
這幾天打算做個游戲方向盤之類的,找到了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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TeeChart Pro VCL/FMX
- 下一篇: 二维空间变换