C++の<thread>でマルチスレッドを作成し、GetMouseInput()をサブルーチンで実行してもマウスの状態を正確に取得できないのですが、なんとかマルチスレッドでGetMouseInput()を使用することはできないでしょうか。
マウスの状態が正確に取得できないとは、GetMouseInput()を実行する際にプログラム実行時のマウス状態を常に返すことです。
〇動作しないプログラムの例
// 状態にかかわらず常にマウスの状態を取得したい
void sub (){
while(true){
if (GetMouseInput() && MOUSE_INPUT_LEFT)
clickCount++;
else
clickCount = 0;
}
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
// --- 初期化等 ---
std::thread thread(sub);
thread.detach();
do{
// --- ゲームの処理 ---
}while(~~~)
return 0;
}
どうしてもマルチスレッドで実行しなければならないわけではないのですが、状態に関わらずマウスの状態を取得しておきたいので、すべてのループ内にマウス状態を取得する関数を挿入するくらいならサブルーチンで実行しておいたほうが余計な関数が減らせるなあと思った次第です。
ご教授よろしくお願いします。