Impostazione: sto usando Lua da un ambiente C/C++.Lua 'richiede' ma i file sono solo in memoria
Ho diversi file lua su disco. Questi vengono letti in memoria e alcuni file lua solo in memoria diventano disponibili durante il runtime. Pensa ad es. di un editor, con ulteriori file lua non salvati.
Quindi, ho un list<identifier, lua_file_content>
nella memoria. Alcuni di questi file contengono le dichiarazioni require
. Quando provo a caricare tutti questi file su un'istanza lua (attualmente tramite lua_dostring
) ottengo attempt to call global require (a nil value)
.
Esiste la possibilità di fornire una funzione require
, che sostituisce quella precedente e utilizza solo i file di memoria forniti (quei file sono sul lato C)?
C'è un altro modo di consentire require
in questi file senza avere i file richiesti sul disco?
Un esempio potrebbe essere quello di caricare il lua stdlib dalla memoria solo senza alterarlo. (Questo è in realtà il mio banco di prova.)
La ringrazio molto, funziona anche molto bene. Dal momento che sembra essere la soluzione migliore, poiché gestisce il pacchetto. Caricato implicitamente, ho cambiato la soluzione accettata a questo. –