今回、GetKeyboardState関数を使って、何かキーが押されたら処理を行うというコードを作成しようとしました。
ですが、何も入力していないのに、常にキーが入力された状態になってしまいます。
今回作成した関数はこのようになっています。
/*--- Keyboard.h ---*/
#pragma once
#include<iostream>
#include<Windows.h>
byte keyBuf[256] = { 0 }; //キーが押されているか確認
byte keyState[256] = { 0 }; //押されている間に値を加算
int MygetKeyState() {
if (GetKeyboardState(keyBuf)) { //入力がされたら
for (int i = 0; i < 256; i++) {
if (keyBuf[i]) {
keyState[i]++;
std::cout << i << std::endl; //デバッグ用
}
else
keyState[i] = 0;
}
}
return 0;
}
/*--- main.cpp ---*/
#include"Keyboard.h"
int main(){
MygetKeyState();
return 0;
}
/*--- 実行結果 ---*/
1
2
5
8
13
144
240
246
251
このように、幾つかのキーが入力された状態になっていました。
これは何が原因なのでしょうか?自分の関数の使い方が間違っているのでしょうか?
ご教授よろしくお願いいたします。