C# DirectInput游戏手柄开发心得

做的是飞行摇杆

可以用系统API做,没成功获取数据。。。

也可以用DirectInput

MSDN已经不推荐用DirectInput了,下一步研究用XInput效果如何

更新更新,改用SharpDX.DirectInput了,.NET Framework 4.5试了没问题,博客链接如下:

http://blog.csdn.net/u012692537/article/details/78604571


在stackflow看到还有推荐用slimdx的,没试过不知道,不过官方文档里这两个的directinput类使用接口挺像的,应该差不多

slimdx文档链接  https://www.slimdx.org/docs/#T_SlimDX_DirectInput_JoystickState

这两个我都是从VS的nuget管理里搜索下载的


以下不推荐了,虽然可以用


1、using

using Microsoft.DirectX;
using Microsoft.DirectX.DirectInput;

需要添加引用,

一般在C:\Windows\Microsoft.NET\DirectX for Managed Code\1.0.2902.0\

2、环境

我用的是vs2015, 

默认目标框架是.NET Framework 4.5.2, 默认目标平台是AnyCPU, 默认不勾选首选32位

但是只要new一个Microsoft.DirectX.DirectInput里的对象,就直接卡死

找了几个例子,可能出现如下异常

“System.BadImageFormatException”类型的未经处理的异常在xx.exe 中发生 

一般出现 此类原因是由于“目标程序的目标平台与依赖项的目标编译平台不一致导致,把所有的项目都修改到同一目标平台下(X86、X64或AnyCPU)进行编译,一般即可解决问题

LoaderLocker异常

调试-窗口-异常设置里把LoaderLocker关了可解决

仍然卡死,把目标框架换成.NET Framework 3.5,默认目标平台换成x86就可以正常运行

用C++做的时候就一点问题都没有,简直哔 了 狗 了

3、开发

具体开发教程可以参考

等我有空再把自己版本的写上来

1、c#版http://blog.csdn.net/icdbow/article/details/6741084

2、C++ DirectInput获取鼠标键盘http://blog.csdn.net/true11false/article/details/38130653

3、Direct SDK 官方Samples(C++),我从微软官网找的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值