Page 1 of 1

LUA Include (include dll in exe)

Posted: Wed Nov 14, 2007 11:08 am
by Heathen
Here is a modified version of FloHimself's Lua include. This requires the library for loading DLLs from memory.

Original thread:
http://www.purebasic.fr/english/viewtop ... hlight=lua

Note: I haven't tested this much yet, but from basic tests it works.

Code: Select all

Enumeration 1
    #LUA_YIELD          ;= 1
    #LUA_ERRRUN         ;= 2
    #LUA_ERRSYNTAX      ;= 3
    #LUA_ERRMEM         ;= 4
    #LUA_ERRERR         ;= 5
EndEnumeration
Enumeration -1
    #LUA_TNONE          ;= (-1)
    #LUA_TNIL           ;= 0
    #LUA_TBOOLEAN       ;= 1
    #LUA_TLIGHTUSERDATA ;= 2
    #LUA_TNUMBER        ;= 3
    #LUA_TSTRING        ;= 4
    #LUA_TTABLE         ;= 5
    #LUA_TFUNCTION      ;= 6
    #LUA_TUSERDATA      ;= 7
    #LUA_TTHREAD        ;= 8
EndEnumeration
Enumeration
    #LUA_GCSTOP         ;= 0
    #LUA_GCRESTART      ;= 1
    #LUA_GCCOLLECT      ;= 2
    #LUA_GCCOUNT        ;= 3
    #LUA_GCCOUNTB       ;= 4
    #LUA_GCSTEP         ;= 5
    #LUA_GCSETPAUSE     ;= 6
    #LUA_GCSETSTEPMUL   ;= 7
EndEnumeration
Define.d LUA_NUMBER
Define.l LUA_INTEGER
#LUA_DLLNAME = "lua51.dll"
#LUA_MULTRET        = (-1)
#LUA_REGISTRYINDEX  = (-10000)
#LUA_ENVIRONINDEX   = (-10001)
#LUA_GLOBALSINDEX   = (-10002)
#LUA_MINSTACK       = 20
#LUA_ERRFILE  = (#LUA_ERRERR+1)
#LUA_NOREF    = (-2)
#LUA_REFNIL   = (-1)
#LUA_COLIBNAME   = "coroutine"
#LUA_TABLIBNAME  = "table"
#LUA_IOLIBNAME   = "io"
#LUA_OSLIBNAME   = "os"
#LUA_STRLIBNAME  = "string"
#LUA_MATHLIBNAME = "math"
#LUA_DBLIBNAME   = "debug"
#LUA_LOADLIBNAME = "package"
PrototypeC.l proto_luaD_growstack()
PrototypeC.l proto_luaF_newproto()
PrototypeC.l proto_luaL_addlstring(*luaL_Buffer.l,s.s,Size.l)
PrototypeC.l proto_luaL_addstring(*luaL_Buffer.l,s.s)
PrototypeC.l proto_luaL_addvalue(*luaL_Buffer.l)
PrototypeC.l proto_luaL_argerror(*lua_State.l,numarg.l,extramsg.s)
PrototypeC.l proto_luaL_buffinit(*lua_State.l,*luaL_Buffer.l)
PrototypeC.l proto_luaL_callmeta(*lua_State.l,obj.l,e.s)
PrototypeC.l proto_luaL_checkany(*lua_State.l,narg.l)
PrototypeC.l proto_luaL_checkinteger(*lua_State.l,numarg.l)
PrototypeC.l proto_luaL_checklstring(*lua_State.l,numarg.l,Size.l)
PrototypeC.l proto_luaL_checknumber(*lua_State.l,numarg.l)
PrototypeC.l proto_luaL_checkoption(*lua_State.l,narg.l,def.s,*string_array.l)
PrototypeC.l proto_luaL_checkstack(*lua_State.l,sz.l,msg.s)
PrototypeC.l proto_luaL_checktype(*lua_State.l,narg.l,t.l)
PrototypeC.l proto_luaL_checkudata(*lua_State.l,ud.l,tname.s)
PrototypeC.l proto_luaL_error()
PrototypeC.l proto_luaL_findtable(*lua_State.l,idx.l,fname.s)
PrototypeC.l proto_luaL_getmetafield(*lua_State.l,obj.l,e.s)
PrototypeC.l proto_luaL_gsub(*lua_State.l,s.s,p.s,r.s)
PrototypeC.l proto_luaL_loadbuffer(*lua_State.l,buff.l,Size.l,name.s)
PrototypeC.l proto_luaL_loadfile(*lua_State.l,filename.s)
PrototypeC.l proto_luaL_loadstring(*lua_State.l,string.s)
PrototypeC.l proto_luaL_newmetatable(*lua_State.l,tname.s)
PrototypeC.l proto_luaL_newstate()
PrototypeC.l proto_luaL_openlib()
PrototypeC.l proto_luaL_openlibs(*lua_State.l)
PrototypeC.l proto_luaL_optinteger(*lua_State.l,narg.l,LUA_INTEGER.l)
PrototypeC.l proto_luaL_optlstring(*lua_State.l,numarg.l,def.s,Size.l)
PrototypeC.l proto_luaL_optnumber(*lua_State.l,narg,LUA_NUMBER.d)
PrototypeC.l proto_luaL_prepbuffer(*luaL_Buffer.l)
PrototypeC.l proto_luaL_pushresult(*luaL_Buffer.l)
PrototypeC.l proto_luaL_ref(*lua_State.l,t.l)
PrototypeC.l proto_luaL_register(*lua_State.l,libname.s,*luaL_Reg.l)
PrototypeC.l proto_luaL_typerror(*lua_State.l,narg.l,tname.s)
PrototypeC.l proto_luaL_unref(*lua_State.l,t.l,ref.l)
PrototypeC.l proto_luaL_where(*lua_State.l,lvl.l)
PrototypeC.l proto_luaM_realloc_()
PrototypeC.l proto_luaM_toobig()
PrototypeC.l proto_luaP_opmodes()
PrototypeC.l proto_luaP_opnames()
PrototypeC.l proto_luaS_newlstr()
PrototypeC.l proto_luaU_dump()
PrototypeC.l proto_lua_atpanic(*lua_State.l,*lua_CFunction.l)
PrototypeC.l proto_lua_call(*lua_State.l,nargs.l,nresults.l)
PrototypeC.l proto_lua_checkstack(*lua_State.l,sz.l)
PrototypeC.l proto_lua_close(*lua_State.l)
PrototypeC.l proto_lua_concat(*lua_State.l,n.l)
PrototypeC.l proto_lua_cpcall(*lua_State.l,*lua_CFunction.l,*ud.l)
PrototypeC.l proto_lua_createtable(*lua_State.l,narr.l,nrec.l)
PrototypeC.l proto_lua_dump(*lua_State.l,lua_Writer.l,*vdata.l)
PrototypeC.l proto_lua_equal(*lua_State.l,idx1.l,idx2.l)
PrototypeC.l proto_lua_error(*lua_State.l)
PrototypeC.l proto_lua_gc(*lua_State.l,what.l,idata.l)
PrototypeC.l proto_lua_getallocf(*lua_State.l,*p_ud.l)
PrototypeC.l proto_lua_getfenv(*lua_State.l,idx.l)
PrototypeC.l proto_lua_getfield(*lua_State.l,idx.l,k.s)
PrototypeC.l proto_lua_gethookcount()
PrototypeC.l proto_lua_gethookmask()
PrototypeC.l proto_lua_getinfo()
PrototypeC.l proto_lua_getlocal()
PrototypeC.l proto_lua_getmetatable(*lua_State.l,objindex.l)
PrototypeC.l proto_lua_getstack()
PrototypeC.l proto_lua_gettable(*lua_State.l,idx.l)
PrototypeC.l proto_lua_gettop(*lua_State.l)
PrototypeC.l proto_lua_getupvalue()
PrototypeC.l proto_lua_insert(*lua_State.l,idx.l)
PrototypeC.l proto_lua_iscfunction(*lua_State.l,idx.l)
PrototypeC.l proto_lua_isnumber(*lua_State.l,idx.l)
PrototypeC.l proto_lua_isstring(*lua_State.l,idx.l)
PrototypeC.l proto_lua_isuserdata(*lua_State.l,idx.l)
PrototypeC.l proto_lua_lessthan(*lua_State.l,idx1.l,idx2.l)
PrototypeC.l proto_lua_load(*lua_State.l,lua_Reader.l,*dt.l,chunkname.s)
PrototypeC.l proto_lua_newstate(*lua_Alloc.l,*ud.l)
PrototypeC.l proto_lua_newthread(*lua_State.l)
PrototypeC.l proto_lua_newuserdata(*lua_State.l,sz.l)
PrototypeC.l proto_lua_next(*lua_State.l,idx.l)
PrototypeC.l proto_lua_objlen(*lua_State.l,idx.l)
PrototypeC.l proto_lua_pcall(*lua_State.l,nargs.l,nresults.l,*lua_errCFunction.l)
PrototypeC.l proto_lua_pushboolean(*lua_State.l,b.l)
PrototypeC.l proto_lua_pushcclosure(*lua_State.l,*fn.l,n.l)
PrototypeC.l proto_lua_pushfstring()
PrototypeC.l proto_lua_pushinteger(*lua_State.l,LUA_INTEGER.l)
PrototypeC.l proto_lua_pushlightuserdata(*lua_State.l,*p.l)
PrototypeC.l proto_lua_pushlstring(*lua_State.l,string.s,Size.l)
PrototypeC.l proto_lua_pushnil(*lua_State.l)
PrototypeC.l proto_lua_pushnumber(*lua_State.l,LUA_NUMBER.d)
PrototypeC.l proto_lua_pushstring(*lua_State.l,string.s)
PrototypeC.l proto_lua_pushthread(*lua_State.l)
PrototypeC.l proto_lua_pushvalue(*lua_State.l,idx.l)
PrototypeC.l proto_lua_pushvfstring()
PrototypeC.l proto_lua_rawequal(*lua_State.l,idx1.l,idx2.l)
PrototypeC.l proto_lua_rawget(*lua_State.l,idx.l)
PrototypeC.l proto_lua_rawgeti(*lua_State.l,idx.l,n.l)
PrototypeC.l proto_lua_rawset(*lua_State.l,idx.l)
PrototypeC.l proto_lua_rawseti(*lua_State.l,idx.l,n.l)
PrototypeC.l proto_lua_remove(*lua_State.l,idx.l)
PrototypeC.l proto_lua_replace(*lua_State.l,idx.l)
PrototypeC.l proto_lua_resume(*lua_State.l,narg.l)
PrototypeC.l proto_lua_setallocf(*lua_State.l,lua_Alloc.l,*ud.l)
PrototypeC.l proto_lua_setfenv(*lua_State.l,idx.l)
PrototypeC.l proto_lua_setfield(*lua_State.l,idx.l,k.s)
PrototypeC.l proto_lua_sethook()
PrototypeC.l proto_lua_setlocal()
PrototypeC.l proto_lua_setmetatable(*lua_State.l,objindex.l)
PrototypeC.l proto_lua_settable(*lua_State.l,idx.l)
PrototypeC.l proto_lua_settop(*lua_State.l,idx.l)
PrototypeC.l proto_lua_setupvalue()
PrototypeC.l proto_lua_status(*lua_State.l)
PrototypeC.l proto_lua_toboolean(*lua_State.l,idx.l)
PrototypeC.l proto_lua_tocfunction(*lua_State.l,idx.l)
PrototypeC.l proto_lua_tointeger(*lua_State.l,idx.l)
PrototypeC.l proto_lua_tolstring(*lua_State.l,idx.l,len.l)
PrototypeC.l proto_lua_tonumber(*lua_State.l,idx.l)
PrototypeC.l proto_lua_topointer(*lua_State.l,idx.l)
PrototypeC.l proto_lua_tothread(*lua_State.l,idx.l)
PrototypeC.l proto_lua_touserdata(*lua_State.l,idx.l)
PrototypeC.l proto_lua_type(*lua_State.l,idx.l)
PrototypeC.l proto_lua_typename(*lua_State.l,tp.l)
PrototypeC.l proto_lua_xmove(*lua_State_from.l,*lua_State_to.l,n.l)
PrototypeC.l proto_lua_yield(*lua_State.l,nresults.l)
PrototypeC.l proto_luaopen_base(*lua_State.l)
PrototypeC.l proto_luaopen_debug(*lua_State.l)
PrototypeC.l proto_luaopen_io(*lua_State.l)
PrototypeC.l proto_luaopen_math(*lua_State.l)
PrototypeC.l proto_luaopen_os(*lua_State.l)
PrototypeC.l proto_luaopen_package(*lua_State.l)
PrototypeC.l proto_luaopen_string(*lua_State.l)
PrototypeC.l proto_luaopen_table(*lua_State.l)
lua_dll_ = LoadLibraryM(?lua_section_)
Global luaD_growstack.proto_luaD_growstack=GetProcAddressM(lua_dll_, "luaD_growstack")
Global luaF_newproto.proto_luaF_newproto=GetProcAddressM(lua_dll_, "luaF_newproto")
Global luaL_addlstring.proto_luaL_addlstring=GetProcAddressM(lua_dll_, "luaL_addlstring")
Global luaL_addstring.proto_luaL_addstring=GetProcAddressM(lua_dll_, "luaL_addstring")
Global luaL_addvalue.proto_luaL_addvalue=GetProcAddressM(lua_dll_, "luaL_addvalue")
Global luaL_argerror.proto_luaL_argerror=GetProcAddressM(lua_dll_, "luaL_argerror")
Global luaL_buffinit.proto_luaL_buffinit=GetProcAddressM(lua_dll_, "luaL_buffinit")
Global luaL_callmeta.proto_luaL_callmeta=GetProcAddressM(lua_dll_, "luaL_callmeta")
Global luaL_checkany.proto_luaL_checkany=GetProcAddressM(lua_dll_, "luaL_checkany")
Global luaL_checkinteger.proto_luaL_checkinteger=GetProcAddressM(lua_dll_, "luaL_checkinteger")
Global luaL_checklstring.proto_luaL_checklstring=GetProcAddressM(lua_dll_, "luaL_checklstring")
Global luaL_checknumber.proto_luaL_checknumber=GetProcAddressM(lua_dll_, "luaL_checknumber")
Global luaL_checkoption.proto_luaL_checkoption=GetProcAddressM(lua_dll_, "luaL_checkoption")
Global luaL_checkstack.proto_luaL_checkstack=GetProcAddressM(lua_dll_, "luaL_checkstack")
Global luaL_checktype.proto_luaL_checktype=GetProcAddressM(lua_dll_, "luaL_checktype")
Global luaL_checkudata.proto_luaL_checkudata=GetProcAddressM(lua_dll_, "luaL_checkudata")
Global luaL_error.proto_luaL_error=GetProcAddressM(lua_dll_, "luaL_error")
Global luaL_findtable.proto_luaL_findtable=GetProcAddressM(lua_dll_, "luaL_findtable")
Global luaL_getmetafield.proto_luaL_getmetafield=GetProcAddressM(lua_dll_, "luaL_getmetafield")
Global luaL_gsub.proto_luaL_gsub=GetProcAddressM(lua_dll_, "luaL_gsub")
Global luaL_loadbuffer.proto_luaL_loadbuffer=GetProcAddressM(lua_dll_, "luaL_loadbuffer")
Global luaL_loadfile.proto_luaL_loadfile=GetProcAddressM(lua_dll_, "luaL_loadfile")
Global luaL_loadstring.proto_luaL_loadstring=GetProcAddressM(lua_dll_, "luaL_loadstring")
Global luaL_newmetatable.proto_luaL_newmetatable=GetProcAddressM(lua_dll_, "luaL_newmetatable")
Global luaL_newstate.proto_luaL_newstate=GetProcAddressM(lua_dll_, "luaL_newstate")
Global luaL_openlib.proto_luaL_openlib=GetProcAddressM(lua_dll_, "luaL_openlib")
Global luaL_openlibs.proto_luaL_openlibs=GetProcAddressM(lua_dll_, "luaL_openlibs")
Global luaL_optinteger.proto_luaL_optinteger=GetProcAddressM(lua_dll_, "luaL_optinteger")
Global luaL_optlstring.proto_luaL_optlstring=GetProcAddressM(lua_dll_, "luaL_optlstring")
Global luaL_optnumber.proto_luaL_optnumber=GetProcAddressM(lua_dll_, "luaL_optnumber")
Global luaL_prepbuffer.proto_luaL_prepbuffer=GetProcAddressM(lua_dll_, "luaL_prepbuffer")
Global luaL_pushresult.proto_luaL_pushresult=GetProcAddressM(lua_dll_, "luaL_pushresult")
Global luaL_ref.proto_luaL_ref=GetProcAddressM(lua_dll_, "luaL_ref")
Global luaL_register.proto_luaL_register=GetProcAddressM(lua_dll_, "luaL_register")
Global luaL_typerror.proto_luaL_typerror=GetProcAddressM(lua_dll_, "luaL_typerror")
Global luaL_unref.proto_luaL_unref=GetProcAddressM(lua_dll_, "luaL_unref")
Global luaL_where.proto_luaL_where=GetProcAddressM(lua_dll_, "luaL_where")
Global luaM_realloc_.proto_luaM_realloc_=GetProcAddressM(lua_dll_, "luaM_realloc_")
Global luaM_toobig.proto_luaM_toobig=GetProcAddressM(lua_dll_, "luaM_toobig")
Global luaP_opmodes.proto_luaP_opmodes=GetProcAddressM(lua_dll_, "luaP_opmodes")
Global luaP_opnames.proto_luaP_opnames=GetProcAddressM(lua_dll_, "luaP_opnames")
Global luaS_newlstr.proto_luaS_newlstr=GetProcAddressM(lua_dll_, "luaS_newlstr")
Global luaU_dump.proto_luaU_dump=GetProcAddressM(lua_dll_, "luaU_dump")
Global lua_atpanic.proto_lua_atpanic=GetProcAddressM(lua_dll_, "lua_atpanic")
Global lua_call.proto_lua_call=GetProcAddressM(lua_dll_, "lua_call")
Global lua_checkstack.proto_lua_checkstack=GetProcAddressM(lua_dll_, "lua_checkstack")
Global lua_close.proto_lua_close=GetProcAddressM(lua_dll_, "lua_close")
Global lua_concat.proto_lua_concat=GetProcAddressM(lua_dll_, "lua_concat")
Global lua_cpcall.proto_lua_cpcall=GetProcAddressM(lua_dll_, "lua_cpcall")
Global lua_createtable.proto_lua_createtable=GetProcAddressM(lua_dll_, "lua_createtable")
Global lua_dump.proto_lua_dump=GetProcAddressM(lua_dll_, "lua_dump")
Global lua_equal.proto_lua_equal=GetProcAddressM(lua_dll_, "lua_equal")
Global lua_error.proto_lua_error=GetProcAddressM(lua_dll_, "lua_error")
Global lua_gc.proto_lua_gc=GetProcAddressM(lua_dll_, "lua_gc")
Global lua_getallocf.proto_lua_getallocf=GetProcAddressM(lua_dll_, "lua_getallocf")
Global lua_getfenv.proto_lua_getfenv=GetProcAddressM(lua_dll_, "lua_getfenv")
Global lua_getfield.proto_lua_getfield=GetProcAddressM(lua_dll_, "lua_getfield")
Global lua_gethookcount.proto_lua_gethookcount=GetProcAddressM(lua_dll_, "lua_gethookcount")
Global lua_gethookmask.proto_lua_gethookmask=GetProcAddressM(lua_dll_, "lua_gethookmask")
Global lua_getinfo.proto_lua_getinfo=GetProcAddressM(lua_dll_, "lua_getinfo")
Global lua_getlocal.proto_lua_getlocal=GetProcAddressM(lua_dll_, "lua_getlocal")
Global lua_getmetatable.proto_lua_getmetatable=GetProcAddressM(lua_dll_, "lua_getmetatable")
Global lua_getstack.proto_lua_getstack=GetProcAddressM(lua_dll_, "lua_getstack")
Global lua_gettable.proto_lua_gettable=GetProcAddressM(lua_dll_, "lua_gettable")
Global lua_gettop.proto_lua_gettop=GetProcAddressM(lua_dll_, "lua_gettop")
Global lua_getupvalue.proto_lua_getupvalue=GetProcAddressM(lua_dll_, "lua_getupvalue")
Global lua_insert.proto_lua_insert=GetProcAddressM(lua_dll_, "lua_insert")
Global lua_iscfunction.proto_lua_iscfunction=GetProcAddressM(lua_dll_, "lua_iscfunction")
Global lua_isnumber.proto_lua_isnumber=GetProcAddressM(lua_dll_, "lua_isnumber")
Global lua_isstring.proto_lua_isstring=GetProcAddressM(lua_dll_, "lua_isstring")
Global lua_isuserdata.proto_lua_isuserdata=GetProcAddressM(lua_dll_, "lua_isuserdata")
Global lua_lessthan.proto_lua_lessthan=GetProcAddressM(lua_dll_, "lua_lessthan")
Global lua_load.proto_lua_load=GetProcAddressM(lua_dll_, "lua_load")
Global lua_newstate.proto_lua_newstate=GetProcAddressM(lua_dll_, "lua_newstate")
Global lua_newthread.proto_lua_newthread=GetProcAddressM(lua_dll_, "lua_newthread")
Global lua_newuserdata.proto_lua_newuserdata=GetProcAddressM(lua_dll_, "lua_newuserdata")
Global lua_next.proto_lua_next=GetProcAddressM(lua_dll_, "lua_next")
Global lua_objlen.proto_lua_objlen=GetProcAddressM(lua_dll_, "lua_objlen")
Global lua_pcall.proto_lua_pcall=GetProcAddressM(lua_dll_, "lua_pcall")
Global lua_pushboolean.proto_lua_pushboolean=GetProcAddressM(lua_dll_, "lua_pushboolean")
Global lua_pushcclosure.proto_lua_pushcclosure=GetProcAddressM(lua_dll_, "lua_pushcclosure")
Global lua_pushfstring.proto_lua_pushfstring=GetProcAddressM(lua_dll_, "lua_pushfstring")
Global lua_pushinteger.proto_lua_pushinteger=GetProcAddressM(lua_dll_, "lua_pushinteger")
Global lua_pushlightuserdata.proto_lua_pushlightuserdata=GetProcAddressM(lua_dll_, "lua_pushlightuserdata")
Global lua_pushlstring.proto_lua_pushlstring=GetProcAddressM(lua_dll_, "lua_pushlstring")
Global lua_pushnil.proto_lua_pushnil=GetProcAddressM(lua_dll_, "lua_pushnil")
Global lua_pushnumber.proto_lua_pushnumber=GetProcAddressM(lua_dll_, "lua_pushnumber")
Global lua_pushstring.proto_lua_pushstring=GetProcAddressM(lua_dll_, "lua_pushstring")
Global lua_pushthread.proto_lua_pushthread=GetProcAddressM(lua_dll_, "lua_pushthread")
Global lua_pushvalue.proto_lua_pushvalue=GetProcAddressM(lua_dll_, "lua_pushvalue")
Global lua_pushvfstring.proto_lua_pushvfstring=GetProcAddressM(lua_dll_, "lua_pushvfstring")
Global lua_rawequal.proto_lua_rawequal=GetProcAddressM(lua_dll_, "lua_rawequal")
Global lua_rawget.proto_lua_rawget=GetProcAddressM(lua_dll_, "lua_rawget")
Global lua_rawgeti.proto_lua_rawgeti=GetProcAddressM(lua_dll_, "lua_rawgeti")
Global lua_rawset.proto_lua_rawset=GetProcAddressM(lua_dll_, "lua_rawset")
Global lua_rawseti.proto_lua_rawseti=GetProcAddressM(lua_dll_, "lua_rawseti")
Global lua_remove.proto_lua_remove=GetProcAddressM(lua_dll_, "lua_remove")
Global lua_replace.proto_lua_replace=GetProcAddressM(lua_dll_, "lua_replace")
Global lua_resume.proto_lua_resume=GetProcAddressM(lua_dll_, "lua_resume")
Global lua_setallocf.proto_lua_setallocf=GetProcAddressM(lua_dll_, "lua_setallocf")
Global lua_setfenv.proto_lua_setfenv=GetProcAddressM(lua_dll_, "lua_setfenv")
Global lua_setfield.proto_lua_setfield=GetProcAddressM(lua_dll_, "lua_setfield")
Global lua_sethook.proto_lua_sethook=GetProcAddressM(lua_dll_, "lua_sethook")
Global lua_setlocal.proto_lua_setlocal=GetProcAddressM(lua_dll_, "lua_setlocal")
Global lua_setmetatable.proto_lua_setmetatable=GetProcAddressM(lua_dll_, "lua_setmetatable")
Global lua_settable.proto_lua_settable=GetProcAddressM(lua_dll_, "lua_settable")
Global lua_settop.proto_lua_settop=GetProcAddressM(lua_dll_, "lua_settop")
Global lua_setupvalue.proto_lua_setupvalue=GetProcAddressM(lua_dll_, "lua_setupvalue")
Global lua_status.proto_lua_status=GetProcAddressM(lua_dll_, "lua_status")
Global lua_toboolean.proto_lua_toboolean=GetProcAddressM(lua_dll_, "lua_toboolean")
Global lua_tocfunction.proto_lua_tocfunction=GetProcAddressM(lua_dll_, "lua_tocfunction")
Global lua_tointeger.proto_lua_tointeger=GetProcAddressM(lua_dll_, "lua_tointeger")
Global lua_tolstring.proto_lua_tolstring=GetProcAddressM(lua_dll_, "lua_tolstring")
Global lua_tonumber.proto_lua_tonumber=GetProcAddressM(lua_dll_, "lua_tonumber")
Global lua_topointer.proto_lua_topointer=GetProcAddressM(lua_dll_, "lua_topointer")
Global lua_tothread.proto_lua_tothread=GetProcAddressM(lua_dll_, "lua_tothread")
Global lua_touserdata.proto_lua_touserdata=GetProcAddressM(lua_dll_, "lua_touserdata")
Global lua_type.proto_lua_type=GetProcAddressM(lua_dll_, "lua_type")
Global lua_typename.proto_lua_typename=GetProcAddressM(lua_dll_, "lua_typename")
Global lua_xmove.proto_lua_xmove=GetProcAddressM(lua_dll_, "lua_xmove")
Global lua_yield.proto_lua_yield=GetProcAddressM(lua_dll_, "lua_yield")
Global luaopen_base.proto_luaopen_base=GetProcAddressM(lua_dll_, "luaopen_base")
Global luaopen_debug.proto_luaopen_debug=GetProcAddressM(lua_dll_, "luaopen_debug")
Global luaopen_io.proto_luaopen_io=GetProcAddressM(lua_dll_, "luaopen_io")
Global luaopen_math.proto_luaopen_math=GetProcAddressM(lua_dll_, "luaopen_math")
Global luaopen_os.proto_luaopen_os=GetProcAddressM(lua_dll_, "luaopen_os")
Global luaopen_package.proto_luaopen_package=GetProcAddressM(lua_dll_, "luaopen_package")
Global luaopen_string.proto_luaopen_string=GetProcAddressM(lua_dll_, "luaopen_string")
Global luaopen_table.proto_luaopen_table=GetProcAddressM(lua_dll_, "luaopen_table")

Macro lua_upvalueindex(i)   
  (#LUA_GLOBALSINDEX-(i))
EndMacro
Macro lua_pop(l, n)      
    lua_settop(l, -(n)-1)
EndMacro
Macro lua_newtable(l)
    lua_createtable(l, 0, 0)
EndMacro
Macro lua_register(l, n, f)
    lua_pushcfunction(l, (f))
    lua_setglobal(l, (n))
EndMacro
Macro lua_pushcfunction(l, f)
   lua_pushcclosure(l, (f), 0)
EndMacro
Macro lua_strlen(l, i)
    lua_objlen(l, (i))
EndMacro
Macro lua_isfunction(l, n)   
    (lua_type(l, (n)) = #LUA_TFUNCTION)
EndMacro
Macro lua_istable(l, n)
    (lua_type(l, (n)) = #LUA_TTABLE)
EndMacro
Macro lua_islightuserdata(l, n)   
    (lua_type(l, (n)) = #LUA_TLIGHTUSERDATA)
EndMacro
Macro lua_isnil(l,n)
    (lua_type(l, (n)) = #LUA_TNIL)
EndMacro
Macro lua_isboolean(l, n)
    (lua_type(l, (n)) = #LUA_TBOOLEAN)
EndMacro
Macro lua_isthread(l, n)
    (lua_type(l, (n)) = #LUA_TTHREAD)
EndMacro
Macro lua_isnone(l, n)
    (lua_type(l, (n)) = #LUA_TNONE)
EndMacro
Macro lua_isnoneornil(l, n)   
    (lua_type(l, (n)) <= 0)
EndMacro
Macro lua_pushliteral(l, s)   
   lua_pushlstring(l, s, Len(s)-1)
EndMacro
Macro lua_setglobal(l, s)   
    lua_setfield(l, #LUA_GLOBALSINDEX, (s))
EndMacro
Macro lua_getglobal(l,s)
    lua_getfield(l, #LUA_GLOBALSINDEX, (s))
EndMacro
Macro lua_tostring(l,i) 
    lua_tolstring(l, (i), #Null)
EndMacro
; /*
; ** compatibility macros and functions
; */
Macro lua_open
    luaL_newstate
EndMacro
Macro lua_getregistry(l)
    lua_pushvalue(l, #LUA_REGISTRYINDEX)
EndMacro
Macro lua_getgccount(l)   
    lua_gc(l, #LUA_GCCOUNT, 0)
EndMacro
Macro luaL_getn(l,i)
    lua_objlen(l, i)
EndMacro
Macro luaL_setn(l,i,j)
    ;/* no op! */
EndMacro
Macro luaL_argcheck(l, cond, numarg, extramsg)
    ((cond) Or luaL_argerror(l, numarg, extramsg))
EndMacro
Macro luaL_checkstring(l, n)
    (luaL_checklstring(l, (n), #Null))
EndMacro
Macro luaL_optstring(l, n, d)
    (luaL_optlstring(l, (n), (d), #Null))
EndMacro
Macro luaL_checkint(l, n)   
    (luaL_checkinteger(l, (n)))
EndMacro
Macro luaL_optint(l, n, d)
    (luaL_optinteger(l, (n), (d)))
EndMacro
Macro luaL_checklong(l, n)   
    (luaL_checkinteger(l, (n)))
EndMacro
Macro luaL_optlong(l, n, d)
    (luaL_optinteger(l, (n), (d)))
EndMacro
Macro luaL_typename(l, i)   
    lua_typename(l, lua_type(l,(i)))
EndMacro
Macro luaL_dofile(l, fn)   
    luaL_loadfile(l, fn)
    lua_pcall(l, 0, 0, 0)
EndMacro
Macro luaL_dostring(l, s)   
    luaL_loadstring(l, s)
    lua_pcall(l, 0, 0, 0)
EndMacro
Macro luaL_getmetatable(l, n)   
    (lua_getfield(l, #LUA_REGISTRYINDEX, (n)))
EndMacro
; Macro luaL_opt(L, f, n, d)   
;   (lua_isnoneornil(L, (n)) ? (d) : f(L,(n)))
; EndMacro
Macro lua_baselibopen
    luaopen_base
EndMacro
Macro lua_tablelibopen
    luaopen_table
EndMacro 
Macro lua_iolibopen
    luaopen_io
EndMacro
Macro lua_oslibopen
    luaopen_os
EndMacro
Macro lua_stinglibopen
    luaopen_string
EndMacro 
Macro lua_mathlibopen
    luaopen_math
EndMacro
Macro lua_debuglibopen
    luaopen_debug
EndMacro 
Macro lua_packagelibopen
    luaopen_package
EndMacro
DataSection
lua_section_: IncludeBinary #LUA_DLLNAME
EndDataSection