Библиотека-заглушка - это файл .lib
, а не DLL. Он содержит объявления функций для всех экспортируемых функций в DLL, которые просто перенаправляют вызов в саму DLL. Поэтому, если вы создаете приложение, которое хотите связать с lua51.dll
, вы указываете компоновщику связать с lua51.lib
, и все вызовы экспортируемых функций будут перенаправляться в DLL. Если вы этого не сделаете, вы получите много «неразрешенных внешних символов» ошибок при линковке.
Это необходимо только при статической привязке к DLL (чтобы она загружалась автоматически при запуске приложения). Не требуется при динамической загрузке DLL с помощью LoadLibrary
.
Относительно того, почему у них есть две разные DLL, в руководстве сказано:
В пакетах DLL LuaBinaries есть dll-прокси под названием "lua51.dll". Он может быть использован для замены других "lua51.dll", выпущенных другими дистрибутивами. Он просто будет переадресовывать звонки на "lua5.1.dll". В пересылке нет скомпилированного исходного кода.
По сути, некоторые существующие приложения связываются с lua5.1.dll
, в то время как другие связываются с lua51.dll
, и они хотят поддерживать их обоих. В любом случае это не относится к библиотекам-заглушкам.