0

问题

我想使用 c++ 以编程方式抛出 Windows 操纵杆移动事件,但我不确定如何。

有人提到编写我自己的自定义设备驱动程序。我以前从来没有做过这样的事情。

谁能指出我正确的方向?

我尝试了什么?

1) 我首先研究了VJoy和它的SDK作为一种方式来做到这一点。

我运行了演示代码,但它需要安装 Vjoy 驱动程序。我尝试执行此操作,但收到“在 Msvcrt.dll 文件中未找到过程入口点”错误,导致安装失败。

微软建议的修复是...

...使用 Windows XP 故障恢复控制台将 Msvcrt.dll 文件替换为原始版本。

(我相信 Msvcrt.dll 版本应该是 7.0.2600.0 但我的是 7.0.2600.5512。)

这需要一张我没有的 Windows XP CD-ROM。

2)我原以为我可以在本教程之后使用 DirectX DirectInput 组件实现同样的效果。我还安装了DirectX SDK来获取我需要的 .lib 文件和头文件。

教程说:

您需要包含 DirectInput 头文件才能使用任何 DirectInput 函数:

#include <dinput.h>

为了链接最终的应用程序二进制文件,您需要在项目中包含以下库:

dinput8.lib dxguid.lib

我正确链接了库,但是当我包含 dinput.h 并构建时,我收到以下错误

1>  Main.cpp
1>  c:\program files\microsoft directx sdk (june 2010)\include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800
1>c:\program files\microsoft directx sdk (june 2010)\include\dinput.h(1991): error C2059: syntax error : 'constant'
1>c:\program files\microsoft directx sdk (june 2010)\include\dinput.h(1991): error C2238: unexpected token(s) preceding ';'
1>c:\program files\microsoft directx sdk (june 2010)\include\dinput.h(1999): error C2059: syntax error : 'constant'
1>c:\program files\microsoft directx sdk (june 2010)\include\dinput.h(1999): error C2238: unexpected token(s) preceding ';'
1>c:\program files\microsoft directx sdk (june 2010)\include\dinput.h(2220): error C2059: syntax error : 'constant'
1>c:\program files\microsoft directx sdk (june 2010)\include\dinput.h(2220): error C2238: unexpected token(s) preceding ';'
1>c:\program files\microsoft directx sdk (june 2010)\include\dinput.h(2232): error C2059: syntax error : 'constant'
1>c:\program files\microsoft directx sdk (june 2010)\include\dinput.h(2232): error C2238: unexpected token(s) preceding ';'

一些额外的信息

我正在使用 Windows XP。

我是 C++ 新手。

4

0 回答 0