问题
我想使用 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++ 新手。