Модификация Для Игры На Основе Dll-Обертки

Есть игра In Verbis Virtus с необычной механикой — произнесением заклинаний с помощью микрофона.

Это не симулятор Амаяка Акопяна, это головоломка от первого лица с нетипичным управлением.

Для этого в игре используется библиотека распознавания речи Sphinx. Идея выглядит интересно, но реализация получилась так себе (узнавание очень часто пропускает), а кастинг после первых 20 минут откровенно скучен.

Я вообще молчу о том, как это выглядит со стороны.

Разработчики, к сожалению, не оставили возможности управления заклинаниями с клавиатуры, и я решил это исправить.

Моей первой мыслью было внести изменения в библиотеку Sphinx, поскольку она с открытым исходным кодом.

Однако я обнаружил, что существует куча версий этой библиотеки.

Попробовав три из них (примерно соответствующие времени выхода игры), я так и не нашел нужный мне, так как каждый имел некоторые отличия (по крайней мере, по набору экспортируемых функций).

Поэтому я решил сделать обертку поверх оригинальной библиотеки из игры.

Для этого я использовал подход, предложенный в статье Создание оболочек .

DLL .

Суть ее в том, что вы можете обернуть любую библиотеку, не зная о параметрах и типах экспортируемых функций, достаточно лишь их названий (которые можно извлечь даже текстовым редактором).

Список экспорта создается с использованием файла def вида:

  
   

EXPORTS func1=_func1 @1 func2=_func2 @2

Сами оболочки функций выглядят так:

_declspec(naked) void _func1() {

Теги: #Разработка для Windows #Ассемблер #winapi #dll #wrapper
Вместе с данным постом часто просматривают: