Я сделал FPS-игру для MSVC ++, которая отлично работает на Windows. Но сейчас я пытаюсь сделать его переносимым (по крайней мере, я хочу создать версию для Linux и Windows), поэтому я решил изменить IDE на Code :: Blocks, а структуру - на wxWidgets. Но кажется, что коды виртуальных клавиш и коды сканирования различны в разных системах.
Ранее я испытывал, что виртуальные коды клавиш могут отличаться даже на одной и той же операционной системе, но на разных компьютерах (я получал сообщения об ошибках о том, что они не могут контролировать символ (в зависимости от состояния numlock, lol, not joke), что исправлено при изменении кода использовать коды сканирования вместо кодов virtkey)
(редактировать: с помощью wxWidgets коды virtkey и scan на numpad имеют разные значения в зависимости от состояния numlock, взрыв!)
Теперь с wxWidgets кажется, что wxKeyEvent :: GetRawKeyCode и код, полученный ранее из lParam WM_KEYDOWN, отличаются. И я также получаю совершенно другой код сканирования в Linux (Ubuntu) из GetRawKeyCode.
Что ж, я могу создать свою собственную таблицу кодов сканирования, нажав все клавиши и посмотрев, какой код он выдает, но единственная проблема, с которой Ubuntu работает на моем ноутбуке, а у ноутбука нет полноценной клавиатуры ...
Но мне нужны все они, чтобы настройки управления работали.
Итак, вопрос: существует ли стандартный и кроссплатформенный способ получить один и тот же код для одного и того же ключа (точнее, ключа в той же позиции)? (по крайней мере, для Windows и Linux)