gpt4 book ai didi

c++ - 为什么在VS中左键单击控制台时控制台程序中断?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:45:10 26 4
gpt4 key购买 nike

我在VS中写了一个控制台程序来响应鼠标事件。我想在点击时打印一些东西,所以我写了这段代码:

int keyPressed(int key){
return (GetAsyncKeyState(key) & 0x8000 != 0);
}

void Mouse::click(){
while (1)
{
if (keyPressed(VK_LBUTTON) || keyPressed(VK_RBUTTON)){
cout << "click\n";
}
}
}

int main(){
Mouse mouse;
while (1){
mouse.click();
}
}

当我左键单击时,不会打印“点击”,但如果我按下键盘或右键单击,则会打印。

这是怎么回事?我该如何处理?谢谢~

最佳答案

!= has a higher precedence than & ,因此 0x8000 != 0 是在 & 生效之前计算的。

使用括号——将该行更改为:

return (GetAsyncKeyState(key) & 0x8000) != 0;

关于c++ - 为什么在VS中左键单击控制台时控制台程序中断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40121356/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com