ほとんどのドライバはCまたはC++で書かれていますので、それらの言語が分からない場合は、起動する前によく知っておいてほしいでしょう。 Windowsプログラミングでは、初心者に混乱を招くような興味深いショートカットがたくさんあります。たとえば、PVOIDs(typedef void* PVOID
)やLPVOID(typedef void* far LPVOD;
)です。あなたはそれらの多くを使用するので、構造だけでなく概念としてポインタに満足する必要があります。私は、C/C++を行うWindowsスタイルを習得するための練習として、本当に簡単なwin32アプリケーションを書くことをお勧めします。
次のコールポートは、Windows Driver Kitをナビゲートすることです。具体的には、Windows用のドライバをビルドする必要があります。この段階で私のアドバイス能力は、実際にあなたがやっていることや利用可能なハードウェア、あるいは実際にハードウェアを使用しているかどうかにかかっています。ハードウェアを運転する方法を知っている必要があります。そこから、ドライバーを書く適切な方法を選択する必要があります。達成する必要のあるものに応じて、いくつかの異なるタイプのドライバーがあります。これらの1つ
Windowsドライバキットには、仮想トースターを実装するドライバを含む非常に多くのサンプルが含まれています。これらは出発点を提供するはずです。
仮想マシンでこれをテストすることを強くお勧めします。ドライバが正常にビルドされてもランタイムエラーが発生した場合、カーネルモードであればウィンドウが完全にクラッシュする可能性があります。したがって、仮想マシンを破損した場合に仮想マシンを元に戻すことができるだけでなく、システムの再起動を待つ必要がなくなり、苦痛を軽減できます。また、仮想シリアルケーブルを使用できるため、デバッグも容易になります。
あなたが開始する前に、私はより徹底的にWindows開発を研究したいので、これは、非常に大きな仕事である - ユーザーモードを見て、その後、あなたが最初のWindows APIを使用してそれを行うことはできません確認してくださいドライバフレームワーク、最後に必要な場合にのみ、カーネルレベルのものを見てください。
どのようにゲームパッドをこの方法で使用しますか?ゲームアプリケーションなどをロードした後は、もはやバーチャル(私が理解しているように)ゲームパッドでフォーカスセットやコントロールを持たなくなります。 –
lan/internet/TCP経由で別のマシンから「ゲームパッド」を制御するとどうなりますか? –
しかし理論上、仮想ソリューションを開発する主な理由は、製品などのハードウェアコストを節約することです。この場合、ゲームパッドを購入する必要はありませんが、実行するには別のPCを購入する必要がありますあなたがまだそれを持っていなかったらそれをオンにします。私はこれが単なるプロジェクトですが、それを実装する時間を費やす前に実装がどのように機能するか考えてみる価値はあります)。 –