Вам нужно сделать две вещи. Во-первых, вы должны скомпилировать проекты Lua DLL в не-DLL проекты. Поскольку они предназначены для использования в качестве модулей DLL, они, вероятно, не будут предусматривать это в своих системах сборки. Это означает, что вы должны сделать это самостоятельно. Избавьтесь от основных функций DLL и других специализированных функций DLL (но обратите внимание на то, что они делают, и убедитесь, что вы скопировали его, если это важно). И убедитесь, что вы изменили все #defines, которые пытаются включить Lua с динамическим связыванием.
Все библиотеки модулей Lua экспортируют одну или несколько функций вида luaopen_*
, где *
- имя загружаемого модуля. Эта функция, скорее всего, будет украшена нотацией declspec()
. Обычно нотация выполняется с помощью макроса препроцессора, но это не так. В любом случае удалите его, превратив в обычное объявление функции.
Теперь, когда вы создали объект lua_State
, просто вызовите эту функцию luaopen_*
с помощью lua_State
.