基于WindowsSDK检测游戏手柄

基于C++在Visualstudio上实现xbox series游戏手柄输入读取 【代码】基于C++在Visual studio上实现xbox series游戏手柄输入读取。 阅读详情

首先电脑需要安装WindowsSDK.

将对游戏手柄的检测封到一个类里,可以直接C++调用,也可以封成dll后C#调用。

代码如下:

Joystick.h

#pragma once

#include "dinput.h"
#include "dinputd.h"
#include <string>
using namespace std;

#define	  DIRECTINPUT_VERSION	0x0800
#define DI8DEVCLASS_GAMECTRL 4 //扫描游戏控制器

#pragma comment(lib,"dxguid.lib")
#pragma comment(lib,"dinput8.lib")

/********************************************************************\
功能描述:游戏手柄控制类
\********************************************************************/
class CJoystick
{
public:
	CJoystick(void);
	~CJoystick(void);
public:
	string					GetLastErrMsg();
	BOOL					Init(LONG nMin = -1024, LONG nMax = 1024); //初始化函数
	DIJOYSTATE *			PollDevice(); // 轮循设备函数,在轮循过程中读取设备状态
	//枚举设备
	static BOOL CALLBACK	DIEnumDevicesCallback(const DIDEVICEINSTANCE* lpddi, VOID* pvRef); //枚举对象
	static BOOL CALLBACK	EnumObjectsCallback(const DIDEVICEOBJECTINSTANCE* pdidoi, VOID* pContext);

private:
	//一般的成员变量
	HINSTANCE				m_hInstance;	// 实例句柄
	LPDIRECTINPUT8			m_lpDI;			// DI8接口指针
	LPDIRECTINPUTDEVICE8	m_lpDIDevice;	// DIDevice8接口指针
	DIJOYSTATE				m_diJs;			//存储Joystick状态信息
	GUID					JoystickGUID;	//GUID

	LONG					m_nMax;			//最小值
	LONG					m_nMin;			//最大值

	string					m_errmsg;
};


Joystick.cpp

#include "StdAfx.h"
#include ".\joystick.h"

#define SAFE_RELEASE(p) { if(p) { (p)->Release(); (p)=NULL; } }
struct DI_ENUM_CONTEXT
{
	DIJOYCONFIG* pPreferredJoyCfg;
	bool bPreferredJoyCfgValid;
VC++ MFC 游戏手柄Joystick 编程 一个简单的小例子,使用游戏手柄发出命令。用到winmm.lib和winmm.dll。包内里有 立即下载

相关推荐

VC操作USB游戏手柄

使用VC++实现USB游戏手柄的读写操作,可以显示按键状态,也可以让手柄震动

基于windows平台,使用QT+C++实现使用多媒体库读取游戏手柄按键状态的小程序+源码(毕业设计&课程设计&项目开发)

基于windows平台,使用QT+C++实现使用多媒体库读取游戏手柄按键状态的小程序+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用! 基于windows平台,使用QT+C++实现使用多媒体库读取游戏手柄按键状态的小程序+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用!! 基于windows平台,使用QT+C++实现使用多媒体库读取游戏手柄按键状态的小程序+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用!!! 基于windows平台,使用QT+C++实现使用多媒体库读取游戏手柄按键状态的小程序+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用!!!!

利用directinput 进行手柄编程 例程 VC++

此资源是本人下载directx SDK中的examples自带的,压缩包中上传了最终的可执行,调试成功。 是非常好的利用directinput进行手柄开发的C++例程,望能对各位有所帮助。

vc游戏手柄操纵杆程序.visual c++

vc游戏摇杆程序.visual c++

Win32窗口--XBox游戏手柄--C++--方向轮和按键捕获

在 WINDOWS 下编程控制游戏手柄比较主流的技术是用 DirectInput。如果不需要复杂的控制功能,也可以直接使用 WIN API (multimedia joystick API)。来完成简单控制。在 windows 系统中,最多可以同时监控两个游戏手柄,每个游戏手柄最多可以有四个控制键。在程序中既可以直接读取游戏手柄的位置信息和按键状态,也可以通过监控相应的系统消息的方式来获得游戏手柄的信息。多数时候我们在程序中都采用接收游戏手柄消息的方式,因为这种方式不需要定时轮询游戏手柄的状态。游戏手柄相关

插件开发 8570

C++游戏手柄编程-基于windowsAPI-JOYSTICKID

我用的是北通宙斯游戏手柄-白金 放几篇非常不错的文章 1.https://blog.csdn.net/yu_lei_/article/details/83218744 2.https://blog.csdn.net/liyuanbhu/article/details/51714045 #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<Windows.h> //添加joy

代码狗的博客 8878

MFC下 DirectInput的实现

转自http://www.mscto.com/vc/2009022676568.html        一般来说DirectX技术总是应用在游戏上的,而在DirectX天生就能与Win32很好的结合。看看市面上的图书,凡是用到DirectX技术的大多是使用Win32编程的,因为DirectDraw或者DirectXGraphics需要自己控制屏幕上的每一个象素,MFC等类库显然不适合太多自定义的

z889638的博客 1920

无线游戏手柄的测试(Windows11系统手柄调试方法)

实物1、把游戏手柄的无线接收器插入到电脑usb接口中2、【控制面板】----【查看设备和打印机】3、【蓝牙和其它设备】--【更多设备和打印机设置】4、鼠标右键【游戏控制器设置】5、【属性】6、【测试】(每个按键是否正常)7、【校准】(方向光标不在中央时校准即可)

码农从0到1 1万+

directx joysitck 程序示例

//-----------------------------------------------------------------------------  // File: Joystick.cpp  //  // Desc: Demonstrates an application which receives immediate   //       joystick data in ex

mrpayne的专栏 1466

游戏手柄(JoyStick)编程学习笔记(1)

游戏手柄(JoyStick)编程学习笔记(1)最近我开发的一个项目中需要用手柄控制一个二维移动平台的运动,找了些工业用的操作杆,感觉都挺丑的。后来想到打游戏时用的游戏手柄就挺漂亮,就决定试试用游戏手柄作为控制手柄来用。上网查了查,在 WINDOWS 下编程控制游戏手柄比较主流的技术是用 DirectInput。如果不需要复杂的控制功能,也可以直接使用 WIN API (multimedia joys

Ivan 的专栏 3万+

JoyStick(游戏手柄)与C#

前言这是我的第一篇技术博客,希望能为大家提供些有用信息。 概述       前段时间有一项工作是通过游戏手柄控制云台,通过google和msdn搞定了,在这吧就总结一下吧。问题        对于手柄控制主要有以下几个问题 在合适的时机获取游戏手柄的输入? 一般游戏手柄都是有n个方向键和n个功能键控制的,要确认各个键的状态? 解决方案

fedora08的程序专栏 1万+

第15章 做游戏的主人——输出控制利器Directlnput

15.1 引言 众所周知,在普通的Windows 程序中, 用户通过键盘或者鼠标输入的消息并不是应用程序直接处理的,而是通过Windows 的消息机制转发给Windows 操作系统的。Windows 操作系统对这些消息进行响应后,再通过回调应用程序的窗口过程函数进行相应的消息处理。 这显然满足不了对于性能要求比较苛刻的游戏程序。在DirectX 中,微软为我们提供了名为Directlnput

起个名字好难啊 4236

44.输入检测响应

初始化DirectInput系统,这仅需调用DirectInput8Create()函数即可. HRESULT WINAPI DirectInput8Create( HINSTANCE hinst, // 实例句柄 DWORD dwVersion, // 版本标识符 REFIID riidltf, // 输入系统的唯一标识符 ...

weixin_34390996的博客 186

c语言读取游戏手柄输入,让游戏支持手柄输入(控制台)字符打飞机

该楼层疑似违规已被系统折叠隐藏此楼查看此楼//定义前景颜色enum ConsoleTextColor{CTC_RED = FOREGROUND_INTENSITY | FOREGROUND_RED,CTC_DARKRED = FOREGROUND_RED,CTC_GREEN = FOREGROUND_INTENSITY | FOREGROUND_GREEN,CTC_DARKGREEN = FOR...

weixin_30691649的博客 770

C# DirectInput游戏手柄和键盘开发心得2(SharpDX版)

1、SharpDX下载 VS下载: 项目右键——管理nuget程序包——浏览——搜索SharpDX——下载 搜索SharpDX.DirectInput——下载 我是在这里两个都下了,应该是自动识别你当前的.Net Framework版本,有的.Net Framework版本可能没有 貌似官网http://sharpdx.org/ 1、using 如果从nuget下载的

天涯遍地是小草的博客 8050

用C#对手柄输入的监听

在现代游戏开发和其他交互式应用程序中,游戏手柄的使用越来越普遍。特别是Xbox控制器,因其普及度和兼容性,成为了许多开发者的首选。本文将介绍如何使用C#和XInput API来监控Xbox控制器的摇杆输入,并在窗口中显示这些输入信息。

weixin_48671699的博客 2097

基于SpringBoot+Vue校园失物招领系统的设计与实现

校园失物招领系统的设计与实现前端采用了Vue框架,并结合ElementUI来实现界面的设计与布局。后端采用了SpringBoot框架进行开发设计,并结合了Java语言和MySQL数据库来实现。在功能上分为了前端用户模块和管理员模块。前端用户模块主要实现了招领物品信息的发布、查询与管理,失物信息的发布、管理以及自动匹配招领物品,查看校园相关通知公告。管理员模块主要实现了物品分类管理、校园通知管理以及物品招领信息的查询统计等功能。校园失物招领系统的实现优化失物招领的流程,提高了校园失物招领的效率,促进了校园文化的建设,营造了良好的诚信氛围。

上一篇: 基于CoreAudio获取声卡输出电平
popten
博客等级 码龄15年 1粉丝 13原创
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值