Bonsoir
Voila je cherche à intégré lua à mon application mais de maniére dynamique.
Les includes fourni permettre d'intégré lua de maniére static.
J'ai deja réussi à récupérer des fonctions mais je bloque sur une d'entre elle.
Bon en cherchant un peut sur le forum voila ce que j'ai fait :
Voici un exemple de 2 fonction fourni dans l'include de lua:
LUALIB_API
int luaopen_base (lua_State *L);
LUALIB_API int luaopen_table (lua_State *L);Voici ce que je fait :
int lua_luaopen_base(lua_State *L);
int lua_luaopen_table(lua_State *L);
typedef int (*LUA) (lua_State *L);
int
ScriptManager::plugin_luaopen_base(lua_State *L) {
if (LUA_DLL) {
LUA luaopen_base = (LUA)GetProcAddress(LUA_DLL, "luaopen_base");
if (luaopen_base!=NULL)
return luaopen_base(L);
else
erreur("luaopen_base(lua_State *L);");
}
return NULL;
}
LUA_DLL et la dll chargé. j'ai testé cette fonction fonctionne.
Par contre cette fonction à récupérer je n'y arrive pas. Voici ce que j'ai fait :
Fonction donné avec Lua dans l'include:
LUA_API lua_State *lua_open (void);
voici comment je fait et la sa coince
:
lua_State *plugin_Lua_open();
typedef lua_State *(*LUA_OPEN) (void); //point B
lua_State *ScriptManager::plugin_Lua_open() {
if (LUA_DLL) {
LUA_OPEN Lua_open = (LUA_OPEN)GetProcAddress(LUA_DLL, "*Lua_open");
if (Lua_open!=NULL)
return Lua_open(); //point A
else
error("Lua_open();");
}
return NULL;
}
Voila bon mm si la formulation n'est pas bonne pour return Lua_open(); //point A de toute fason l'application n'execute jamais cette ligne la fonction n'est pas trouvé.
à noté que tout sa est inclu dans une class. sauf ce typedef :
typedef struct lua_State lua_State;
j'espére avoir été clair et que vous comprenderé ce que je cherche.
Je pense que c'est au niveau de la ligne //point B que sa ne vas pas.