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