罗技
罗技游戏方向盘软件开发工具包概述和参考
罗技游戏方向盘软件开发工具包包含所有的附加文件,且受到知识产权法的保护,所有罗技游戏方向盘开发包都接受了在这篇文当结尾处“罗技游戏中的许可协议方向盘SDK许可协议”文件。如果您不同意条款和许可协议中的条件,你必须立即返回任意的文档,附带的软件和所有其他材料都是由罗技为您提供,所有未明确的授权,罗技拥有解释权。
概述
罗技游戏方向盘SDK能应用在控制游戏诸如各种类型的游戏控制器(USB/游戏端口轮/游戏杆/游戏垫,力回馈启用与否)。通过使用方向盘SDK你可以确保所有的轮子和操纵杆的功能将发挥完美。没有比在一场游戏中方向盘或摇杆的力反馈不同而导致用户受挫和产品遭到退货更严重的情况了,请注意只有在安装了罗技游戏软件后,SDK才将正常工作,如果想获得更多的信息请访问http://www.logitech.com/en-us/gaming 。 SDK 包
下面的文件包括:
LogitechSteeringWheelLib.h:C / C ++包含头文件的函数原型 LogitechGSDK.cs:C#引用文件用来访问被包装的SDK
LogitechSteeringWheelLib.lib:LIB文件访问DLL导出函数(32位和64位) LogitechSteeringWheelEnginesWrapper.dll:SDK函数封装(32位和64位) 要求
罗技游戏方向盘SDK可以在以下平台上使用: Windows XP SP2(32位和64位) Windows Vista (32-bit and 64-bit) Windows 7 (32-bit and 64-bit) Windows 8 (32-bit and 64-bit)
罗技游戏方向盘SDK是一个基于C语言的接口,是为使用C / C++的程序员设计的。熟悉Windows编程也是必须的。
使用SDK接口
使用LogitechSteeringWheel.h和LogitechSteeringWheel.lib访问LogitechSteeringWheel.dll
应用程序可以包括LogitechSteeringWheel.h并链接到LogitechSteeringWheel.lib(参见“样本 使用该SDK”进一步说明或样本文件夹中的示例程序)的。安装文件夹中的DLL需要是相同的主可执行文件,或者需要在该系统环境中的路径的一部分。
多客户端同时使用SDK
该SDK只允许一个用户在任何给定时间来控制的装置。如果两个应用程序尝试初始化SDK的设备,只有第一个将成功。第二个应用程序的初始化将失败。
该做什么和不该做什么
这些都是一些指导原则,可以帮助在你的游戏中获得'更好'的支持:
函数LogiSteeringInitialize()会试图获得你的应用程序/游戏主窗口句柄。
它可能会失败,因为当你调用该函数时的主窗口可能不会在最前面的界面,如果
LogiSteeringInitialize()返回false,初始化将会接受任何尝试下一个LogiUpdate()函数的
调用。当窗口在最前界面时和SDK可以初始化,LogiUpdate()将返回true。
SDK的使用示例 使用头文件和lib:
参考
罗技转向初始化窗口LogiSteeringInitializeWithWindow(获取窗体句柄) bool LogiSteeringInitialize(CONST bool ignoreXInputControllers, HWND hwnd)
所述LogiSteeringInitializeWithWindow()函数生成必要的初始化,如果没有另一个实例已经在运行。只有你从你的代码中获得窗口的句柄才能使用此功能。 参数
忽略X输入Controlllers:如果设置为true,该软件开发工具包将忽略任何的X输入控制器
HWND:窗口句柄 返回参数
如果函数成功运行,返回为true,否则返回false
LOGI转向初始化LogiSteeringInitialize(主窗体初始化)
bool LogiSteeringInitialize(CONST bool ignoreXInputControllers)
该LogiSteeringInitialize()函数确保主窗口已经到了前面,如果这时没有其他实例运行,则进行必要的初始化 参数
忽略X输入Controlllers:如果设置为true,该软件开发工具包将忽略任何的X输入控制器
返回参数
如果函数成功运行,返回为true,否则返回false
如果返回是假的,那是因为你的应用程序的主窗口还没有到最前面呢。这意味着窗口处理程序还没有被检索。
LogiUpdate(主窗口设备跟新) bool LogiUpdate();
该LogiUpdate()查找主窗口处理程序,如果已经发现力和控制器 保持连接最新的。它被称为应用程序的每一帧。
返回参数
如果函数成功运行,返回为true,否则返回false
该函数将返回false,如果LogiSteeringInitialize()没有被调用,或者已无法找到主窗口句柄。
LogiGetState(获得设备状态)
DIJOYSTATE2* LogiGetState(const int index);
https://msdn.microsoft.com/zh-cn/library/windows/apps/microsoft.directx_sdk.reference.dijoystate2.aspx
LogiGetState()返回结构体DIJOYSTATE2控制器的状态。如果想使用这个实现从DirectInput到Microsoft Windows工作,则它需要dinput.h。 参数
索引:游戏控制器的索引。索引0对应连接的第一个游戏控制器。索引1对应第二个游戏控制器 返回参数
DIJOYSTATE2 结构包含设备的在坐标系中的位置信息,和POVs和按钮设备信息。 注意
如果不与DirectInput一起工作,则在你的游戏或项目中可以不包括dinput.h,请注意看一看这个功能:LogiGetStateENGINES
LogiGetStateENGINES(获得设备简化状态)
DIJOYSTATE2ENGINES* LogiGetStateENGINES(const int index);
所述LogiGetStateENGINES()是函数LogiGetState的简化版本。如果不是与DirectInput一起工作的。它返回DIJOYSTATE2结构的简化版本,称为DIJOYSTATE2ENGINES。
参数
索引:游戏控制器的索引。索引0对应连接的第一个游戏控制器。索引1对应第二个游戏控制器 返回参数
DIJOYSTATE2 结构包含设备的在坐标系中的位置信息,和POVs和按钮设备信息有关为了更加细致,看看在头文件LogiSeeringWheel.h的信息。
LogiGetFriendlyProductName(获取设备名)
wchar_t* LogiGetFriendlyProductName(const int index);
The LogiGetFriendlyProductName () 函数获得设备的名称。 参数
索引:游戏控制器的索引。索引0对应连接的第一个游戏控制器。索引1对应第二个游戏控制器
返回参数
字符串中包含设备的友好产品名称。
LogiIsConnected(设备是否已连接) bool LogiIsConnected(const int index);
该LogiIsConnected()函数检查游戏控制器是否连接在指定索引处 参数
索引:游戏控制器的索引。索引0对应连接的第一个游戏控制器。索引1对应第二个游
戏控制器 返回参数
返回true,如果设备连接到特定的索引,否则返回false。
LogiIsDeviceConnected(是否连接到特定的设备)
bool LogiIsDeviceConnected(const int index, const int deviceType);
该LogiIsConnected()函数检查指定的设备是否连接在索引处 参数
索引:游戏控制器的索引。索引0对应连接的第一个游戏控制器。索引1对应第二个游戏控制器
设备类型:设备检查的类型。可能的类型: o LOGI_DEVICE_TYPE_WHEEL o LOGI_DEVICE_TYPE_JOYSTICK o LOGI_DEVICE_TYPE_GAMEPAD o LOGI_DEVICE_TYPE_OTHER 返回参数
返回true,如果设备连接到特定的索引,否则返回false。
LogiIsManufacturerConnected (制造商设备检测)
bool LogiIsManufacturerConnected(const int index, const int manufacturerName);
LogiIsManufacturerConnected()函数检查连接成功的设备索引是否由manufacturerName指定的制造商生成。 参数
索引:游戏控制器的索引。索引0对应连接的第一个游戏控制器。索引1对应第二个游戏控制器
manufacturerName:制造设备的制造商的名称,可能的类型主要有: o LOGI_ MANUFACTURER_LOGITECH o LOGI_ MANUFACTURER_MICROSOFT o LOGI_ MANUFACTURER_OTHER 返回参数
如果特定生产商的PC控制器已经连接上,返回真,否则返回假
LogiIsModelConnected(设备型号检测)
bool LogiIsModelConnected(const int index, const int modelName);
该LogiIsModelConnected()函数检查设备连接的索引是否是指定型号
参数
索引:游戏控制器的索引。索引0对应连接的第一个游戏控制器。索引1对应第二个游戏控制器
型号名:设备的型号名称,可能的型号名称: o LOGI_MODEL_G27 o LOGI _MODEL_G25
o LOGI _MODEL_MOMO_RACING o LOGI _MODEL_MOMO_FORCE
o LOGI _MODEL_DRIVING_FORCE_PRO o LOGI _MODEL_DRIVING_FORCE
o LOGI _MODEL_NASCAR_RACING_WHEEL