Можно ли позвонить требовать от C - PullRequest
0 голосов
/ 21 января 2019

У меня есть модуль, скомпилированный в общий объект (я следовал за библиотечной частью этой статьи https://chsasank.github.io/lua-c-wrapping.html) и хочу загрузить его из C, а не из интерпретатора.

Возможно ли это? Если да, то как это сделать?

Ответы [ 2 ]

0 голосов
/ 18 июля 2019

К сожалению, сейчас я использую Lua 5.1, а функция "dolibrary" не существует, я> попытался взять некоторую часть кода, и она вылетает: \ Итак, сейчас я использую luaL_dostring(L,> "require 'libMyWrappings'");libMyWrappings должен находиться в том же каталоге, что и программа c>, и я не могу использовать путь для указания библиотеки.- Aminos 22 января в 11: 45

Я только что столкнулся с той же проблемой, это должно произойти, когда библиотека пакета загружена {LUA_LOADLIBNAME, luaopen_package} должно произойти, прежде чем вы попытаетесь вызвать ее

0 голосов
/ 21 января 2019

Да, это возможно, поскольку require - это функция, хранящаяся в глобальной среде.Lua делает то же самое в автономном интерпретаторе, когда ему нужно обработать опцию -l, см. Функцию dolibrary.

Вы делаете это так же, как и с любой другой глобальной функцией -в простейшем случае вызывая lua_getglobal (), затем нажимая имя требуемого файла, и вызывая lua_call / lua_pcall / что угодно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...