lua-users home
lua-l archive

Re: How to load lua extensions using C API?

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Newton Kim <babynewton73@gmail.com> writes:
> What C API should I call to let the lua engine load my extension?
> Thank you in advance.
You can execute other bits of Lua code from the C api too... so you
_could_ just include a small constant string in your C program,
containing Lua "init" code that does all the module loading and other
setup you want, and run that code snippet before loading the main
script:
 static const char init_lua_code[] = "...some lua code...";
 luaL_loadstring (L, init_lua_code);
 // optionally push arguments the lua code uses
 lua_call (L, 0/*number of args*/, 0);
Alternatively, it's easy to just call the Lua require function:
 lua_getglobal (L, "require");		 // function
 lua_pushstring (L, "mymodulename"); // arg 0
 lua_call (L, 1, 1);			 // call require; returns 1 val
 // If it's a 5.1/5.2-style module, it will return the module table, so
 // store that in a global variable:
 lua_setglobal (L, "mymodulevar"); // maybe same name as above
-miles
-- 
On a bad day, I see brewers still talking as though all beer were
consumed in the pub, by the pint -- by insatiably thirsty Yorkshire
steelworkers who have in reality long ago sought work as striptease
artists. [Michael Jackson]

AltStyle によって変換されたページ (->オリジナル) /