3

C ++のvkCodeが提供するキーコードと、JavaのKeyEventが提供するキーコードの違いに気づきました。(もちろん、通常の文字は同じコード(ASCIIと同じように0 => 48)ですが、他のキーは異なります)。それらを一方から他方に「変換」する方法はありますか(それぞれの背後にあるロジックは何ですか?)、またはそのために多数のスイッチとIFを使用することになっていますか?それが役に立ったら、私のアプリは半分がC ++で、半分がJAVAです。これは、c ++が提供するネイティブフックが原因で、ユーザーが押すキーのキーコードを取得し、Javaがそれらを使用するためです。

前もって感謝します。

4

1 に答える 1

2

または私はスイッチとIFの負荷を使用することになっていますか

おそらく、それらをルックアップテーブルに配置することもできます。つまり、Java KeyCodesを大きな配列に配置することができるので、実行する必要がありますjavaKeyCode = keyLut[cppScanCode]

スキャンコードのリストの1つはここにあります。VK_KEYCODESもちろん、のAPIドキュメントにもありますKeyEvent

Javaはプラットフォームに依存しないように設計されているため、たとえば左キーを押すと、VK_LEFTスキャンコードに関係なく、常にが生成されます。完全にはわかりませんが、C++スキャンコードはハードウェアに依存していると思います。

于 2010-05-09T18:56:03.153 に答える