Напишите вашу DLL как обычный модуль Lua, реализованный на C. PiL имеет описание , но он добавляет к именованию одну экспортируемую функцию после имени DLL, чтобы обычная функция require
могла загрузитьЭто.Чтобы загрузить библиотеку require "mylib"
, вы создаете mylib.dll с экспортированной функцией luaopen_mylib()
, которая создает таблицу, содержащую все методы, которые вы хотите использовать, и возвращает ее.Эта функция, как и все другие методы, которые она создает, передается текущее состояние Lua при каждом вызове.
Если ваш движок не разрешает require
в сценариях, то вряд ли он будет иметьразрешено package.loadlib
либо, и вы, вероятно, вообще не сможете загрузить свою DLL.