Я пишу, чтобы получить уверенность в процедурах программирования, приложение win32, которое отвечает на ввод с клавиатуры. Для этого я использую функцию GetAsyncKeyState()
.Могу ли я использовать GetAsyncKeyState() вне функции main()?
Сначала я написал весь свой код в функции main()
, и все выглядело хорошо, это сработало. Поэтому я решил усложнить ситуацию, но это требует от меня использовать функцию GetAsyncKeyState()
в другой функции, вызываемой main()
. Я думал, что мне просто нужно было объявить несколько переменных вне main()
и переместить код из main
новой функции, как это:
int btnup_down = 0;
int close = 1;
int main(void){
while (1){
Sleep(50);
listentokb();
if (close == 0){
break;
}
}return 0;
}
int listentokb(void){
if ((GetAsyncKeyState(0x4C) & 0x8000) && (ko == 0)){
ko = 1;
printf("Ok you pressed k");
return 0;
} else if (((GetAsyncKeyState(0x4C) == 0) && (ko == 1)) {
ko = 0;
printf("Now you released it");
close = 0;
return 0;
}return 0;
}
Когда я запускаю этот код, цикл продолжает идти, и если это не имеет значения Я нажимаю клавишу или нет, она продолжает цикл, не печатая ничего. Любая помощь будет очень восприимчивой.
Вы, конечно, не нужны глобальные переменные для этого. Кроме того, 0x4C является клавишей L. – chris