// Ryzom - MMORPG Framework // Copyright (C) 2010 Winch Gate Property Limited // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . #include "../stdpch.h" extern "C" { // #include "lua_loadlib.h" } #include "nel/misc/dynloadlib.h" #include "lua_dll.h" // from lua.h Tlua_open lua_open; Tlua_close lua_close; Tlua_newthread lua_newthread; Tlua_atpanic lua_atpanic; Tlua_gettop lua_gettop; Tlua_settop lua_settop; Tlua_pushvalue lua_pushvalue; Tlua_remove lua_remove; Tlua_insert lua_insert ; Tlua_replace lua_replace; Tlua_checkstack lua_checkstack; Tlua_xmove lua_xmove; Tlua_isnumber lua_isnumber; Tlua_isstring lua_isstring; Tlua_iscfunction lua_iscfunction; Tlua_isuserdata lua_isuserdata; Tlua_type lua_type; Tlua_typename lua_typename; Tlua_equal lua_equal; Tlua_rawequal lua_rawequal; Tlua_lessthan lua_lessthan; Tlua_tonumber lua_tonumber; Tlua_toboolean lua_toboolean; Tlua_tostring lua_tostring; Tlua_strlen lua_strlen; Tlua_tocfunction lua_tocfunction; Tlua_touserdata lua_touserdata; Tlua_tothread lua_tothread; Tlua_topointer lua_topointer; Tlua_pushnil lua_pushnil; Tlua_pushnumber lua_pushnumber; Tlua_pushlstring lua_pushlstring; Tlua_pushstring lua_pushstring; Tlua_pushvfstring lua_pushvfstring; Tlua_pushfstring lua_pushfstring; Tlua_pushcclosure lua_pushcclosure; Tlua_pushboolean lua_pushboolean; Tlua_pushlightuserdata lua_pushlightuserdata; Tlua_gettable lua_gettable; Tlua_rawget lua_rawget; Tlua_rawgeti lua_rawgeti; Tlua_newtable lua_newtable; Tlua_newuserdata lua_newuserdata; Tlua_getmetatable lua_getmetatable; Tlua_getfenv lua_getfenv; Tlua_settable lua_settable; Tlua_rawset lua_rawset; Tlua_rawseti lua_rawseti; Tlua_setmetatable lua_setmetatable; Tlua_setfenv lua_setfenv; Tlua_call lua_call; Tlua_pcall lua_pcall; Tlua_cpcall lua_cpcall; Tlua_load lua_load; Tlua_dump lua_dump; Tlua_yield lua_yield; Tlua_resume lua_resume; Tlua_getgcthreshold lua_getgcthreshold; Tlua_getgccount lua_getgccount; Tlua_setgcthreshold lua_setgcthreshold; Tlua_version lua_version; Tlua_error lua_error; Tlua_next lua_next; Tlua_concat lua_concat; Tlua_pushupvalues lua_pushupvalues; Tlua_getstack lua_getstack; Tlua_getinfo lua_getinfo; Tlua_getlocal lua_getlocal; Tlua_setlocal lua_setlocal; Tlua_getupvalue lua_getupvalue; Tlua_setupvalue lua_setupvalue; Tlua_sethook lua_sethook; Tlua_gethook lua_gethook; Tlua_gethookmask lua_gethookmask; Tlua_gethookcount lua_gethookcount; // from lauxlib.h TluaL_openlib luaL_openlib; TluaL_getmetafield luaL_getmetafield; TluaL_callmeta luaL_callmeta; TluaL_typerror luaL_typerror; TluaL_argerror luaL_argerror; TluaL_checklstring luaL_checklstring; TluaL_optlstring luaL_optlstring; TluaL_checknumber luaL_checknumber; TluaL_optnumber luaL_optnumber; TluaL_checkstack luaL_checkstack; TluaL_checktype luaL_checktype; TluaL_checkany luaL_checkany; TluaL_newmetatable luaL_newmetatable; TluaL_getmetatable luaL_getmetatable; TluaL_checkudata luaL_checkudata; TluaL_where luaL_where; TluaL_error luaL_error; TluaL_findstring luaL_findstring; TluaL_ref luaL_ref; TluaL_unref luaL_unref; TluaL_getn luaL_getn; TluaL_setn luaL_setn; TluaL_loadfile luaL_loadfile; TluaL_loadbuffer luaL_loadbuffer; TluaL_buffinit luaL_buffinit; TluaL_prepbuffer luaL_prepbuffer; TluaL_addlstring luaL_addlstring; TluaL_addstring luaL_addstring; TluaL_addvalue luaL_addvalue; TluaL_pushresult luaL_pushresult; Tlua_dofile lua_dofile; Tlua_dostring lua_dostring; Tlua_dobuffer lua_dobuffer; // from lua lib.h Tluaopen_base luaopen_base; Tluaopen_table luaopen_table; Tluaopen_io luaopen_io; Tluaopen_string luaopen_string; Tluaopen_math luaopen_math; Tluaopen_debug luaopen_debug; Tluaopen_loadlib luaopen_loadlib; bool loadLuaDLL() { #ifdef NL_OS_WINDOWS HMODULE libHandle = ::LoadLibrary("lua.dll"); if (!libHandle) return false; #define GET_LUA_PROC(name) name = (T##name) ::GetProcAddress(libHandle, #name); if (!name) return false; // from lua.h GET_LUA_PROC(lua_open) GET_LUA_PROC(lua_close) GET_LUA_PROC(lua_newthread) GET_LUA_PROC(lua_atpanic) GET_LUA_PROC(lua_gettop) GET_LUA_PROC(lua_settop) GET_LUA_PROC(lua_pushvalue) GET_LUA_PROC(lua_remove) GET_LUA_PROC(lua_insert ) GET_LUA_PROC(lua_replace) GET_LUA_PROC(lua_checkstack) GET_LUA_PROC(lua_xmove) GET_LUA_PROC(lua_isnumber) GET_LUA_PROC(lua_isstring) GET_LUA_PROC(lua_iscfunction) GET_LUA_PROC(lua_isuserdata) GET_LUA_PROC(lua_type) GET_LUA_PROC(lua_typename) GET_LUA_PROC(lua_equal) GET_LUA_PROC(lua_rawequal) GET_LUA_PROC(lua_lessthan) GET_LUA_PROC(lua_tonumber) GET_LUA_PROC(lua_toboolean) GET_LUA_PROC(lua_tostring) GET_LUA_PROC(lua_strlen) GET_LUA_PROC(lua_tocfunction) GET_LUA_PROC(lua_touserdata) GET_LUA_PROC(lua_tothread) GET_LUA_PROC(lua_topointer) GET_LUA_PROC(lua_pushnil) GET_LUA_PROC(lua_pushnumber) GET_LUA_PROC(lua_pushlstring) GET_LUA_PROC(lua_pushstring) GET_LUA_PROC(lua_pushcclosure) GET_LUA_PROC(lua_pushboolean) GET_LUA_PROC(lua_pushlightuserdata) GET_LUA_PROC(lua_gettable) GET_LUA_PROC(lua_rawget) GET_LUA_PROC(lua_rawgeti) GET_LUA_PROC(lua_newtable) GET_LUA_PROC(lua_newuserdata) GET_LUA_PROC(lua_getmetatable) GET_LUA_PROC(lua_getfenv) GET_LUA_PROC(lua_settable) GET_LUA_PROC(lua_rawset) GET_LUA_PROC(lua_rawseti) GET_LUA_PROC(lua_setmetatable) GET_LUA_PROC(lua_setfenv) GET_LUA_PROC(lua_call) GET_LUA_PROC(lua_pcall) GET_LUA_PROC(lua_cpcall) GET_LUA_PROC(lua_load) GET_LUA_PROC(lua_dump) GET_LUA_PROC(lua_yield) GET_LUA_PROC(lua_resume) GET_LUA_PROC(lua_getgcthreshold) GET_LUA_PROC(lua_getgccount) GET_LUA_PROC(lua_setgcthreshold) GET_LUA_PROC(lua_version) GET_LUA_PROC(lua_error) GET_LUA_PROC(lua_next) GET_LUA_PROC(lua_concat) GET_LUA_PROC(lua_pushupvalues) GET_LUA_PROC(lua_getstack) GET_LUA_PROC(lua_getinfo) GET_LUA_PROC(lua_getlocal) GET_LUA_PROC(lua_setlocal) GET_LUA_PROC(lua_getupvalue) GET_LUA_PROC(lua_setupvalue) GET_LUA_PROC(lua_sethook) GET_LUA_PROC(lua_gethook) GET_LUA_PROC(lua_gethookmask) GET_LUA_PROC(lua_gethookcount) // from lauxlib.h GET_LUA_PROC(luaL_openlib) GET_LUA_PROC(luaL_getmetafield) GET_LUA_PROC(luaL_callmeta) GET_LUA_PROC(luaL_typerror) GET_LUA_PROC(luaL_argerror) GET_LUA_PROC(luaL_checklstring) GET_LUA_PROC(luaL_optlstring) GET_LUA_PROC(luaL_checknumber) GET_LUA_PROC(luaL_optnumber) GET_LUA_PROC(luaL_checkstack) GET_LUA_PROC(luaL_checktype) GET_LUA_PROC(luaL_checkany) GET_LUA_PROC(luaL_newmetatable) GET_LUA_PROC(luaL_getmetatable) GET_LUA_PROC(luaL_checkudata) GET_LUA_PROC(luaL_where) GET_LUA_PROC(luaL_error) GET_LUA_PROC(luaL_findstring) GET_LUA_PROC(luaL_ref) GET_LUA_PROC(luaL_unref) GET_LUA_PROC(luaL_getn) GET_LUA_PROC(luaL_setn) GET_LUA_PROC(luaL_loadfile) GET_LUA_PROC(luaL_loadbuffer) GET_LUA_PROC(luaL_buffinit) GET_LUA_PROC(luaL_prepbuffer) GET_LUA_PROC(luaL_addlstring) GET_LUA_PROC(luaL_addstring) GET_LUA_PROC(luaL_addvalue) GET_LUA_PROC(luaL_pushresult) GET_LUA_PROC(lua_dofile) GET_LUA_PROC(lua_dostring) GET_LUA_PROC(lua_dobuffer) // from lua lib.h GET_LUA_PROC(luaopen_base) GET_LUA_PROC(luaopen_table) GET_LUA_PROC(luaopen_io) GET_LUA_PROC(luaopen_string) GET_LUA_PROC(luaopen_math) GET_LUA_PROC(luaopen_debug) GET_LUA_PROC(luaopen_loadlib) return true; #else return false; #endif }