Ustawienie: Używam Lua ze środowiska C/C++.Lua "wymagają", ale pliki są tylko w pamięci
Mam kilka plików lua na dysku. Są one odczytywane do pamięci, a niektóre pliki pamięci Lua dostępne tylko w pamięci stają się dostępne w czasie wykonywania. Pomyśl np. edytora, z dodatkowymi niezapisanymi plikami lua.
Tak, mam w pamięci list<identifier, lua_file_content>
. Niektóre z tych plików zawierają w sobie instrukcje require
. Kiedy próbuję załadować wszystkie te pliki do instancji lua (obecnie przez lua_dostring
) otrzymuję attempt to call global require (a nil value)
.
Czy istnieje możliwość udostępnienia funkcji require
, która zastępuje starą i używa tylko plików znajdujących się w pamięci (te pliki znajdują się po stronie C)?
Czy istnieje inny sposób zezwalania na require
w tych plikach bez posiadania wymaganych plików na dysku?
Przykładem może być załadowanie lua stdlib z pamięci tylko bez zmiany jej. (Jest to rzeczywiście mój przypadek testowy).
Dziękuję bardzo, działa również bardzo dobrze. Ponieważ wydaje się, że jest to lepsze rozwiązanie, ponieważ obsługuje pakiet.zainstalowany implicitely, zmieniłem zaakceptowane rozwiązanie na to. –