Есть игра In Verbis Virtus с необычной механикой — произнесением заклинаний с помощью микрофона.
Это не симулятор Амаяка Акопяна, это головоломка от первого лица с нетипичным управлением.
Для этого в игре используется библиотека распознавания речи Sphinx. Идея выглядит интересно, но реализация получилась так себе (узнавание очень часто пропускает), а кастинг после первых 20 минут откровенно скучен.
Я вообще молчу о том, как это выглядит со стороны.
Разработчики, к сожалению, не оставили возможности управления заклинаниями с клавиатуры, и я решил это исправить.
Моей первой мыслью было внести изменения в библиотеку Sphinx, поскольку она с открытым исходным кодом.
Однако я обнаружил, что существует куча версий этой библиотеки.
Попробовав три из них (примерно соответствующие времени выхода игры), я так и не нашел нужный мне, так как каждый имел некоторые отличия (по крайней мере, по набору экспортируемых функций).
Поэтому я решил сделать обертку поверх оригинальной библиотеки из игры.
Для этого я использовал подход, предложенный в статье Создание оболочек .
DLL .
Суть ее в том, что вы можете обернуть любую библиотеку, не зная о параметрах и типах экспортируемых функций, достаточно лишь их названий (которые можно извлечь даже текстовым редактором).
Список экспорта создается с использованием файла def вида:
Сами оболочки функций выглядят так:EXPORTS func1=_func1 @1 func2=_func2 @2
_declspec(naked) void _func1()
{
Теги: #Разработка для Windows #Ассемблер #winapi #dll #wrapper
-
Рейтинг Ix, 2017 Год
19 Oct, 24 -
Зачем Приложению Win32 Нужен Манифест?
19 Oct, 24