Je voudrais intégrer lua pour autoriser les scripts dans mon application C++. En particulier, j'ai deux structs que j'aimerais passer comme arguments à une fonction lua donnée. L'un sera en lecture seule, l'autre sera en lecture/écriture. Des exemples très simplifiés de ces struct suivent:Lecture et écriture C struct from embedded lua
struct inData
{
int x;
int y;
//many other fields follow
};
struct outData
{
int a;
double b;
//other fields follow
};
Ces deux struct sont créés dans le code C++ et seront traitées il y a avant et après l'appel des fonctions lua. Comment puis-je passer ces struct à une fonction Lua telle que la fonction peut faire des choses comme ceci:
if(inData.x > 5) then outData.a = 1 end
et que l'instance OUTDATA conservent effectivement les changements après le retour de la fonction de Lua?
Cela semble générer des wrappers pour les structures, etc. Je ne suis toujours pas clair sur le passage d'une structure existante de C vers lua. Dans l'exemple lié, la structure est instanciée dans la fonction lua, ce qui n'est pas ce que j'essaie de faire. – alanc10n
Section "23.3.9 Pointeurs, références, valeurs et tableaux" traite des structures retournées créées par le code C++, soit par pointeur, soit par valeur. Cela couvre-t-il votre exigence? –
Aussi http://stackoverflow.com/questions/884435/pass-variables-between-c-and-lua-via-swig Il y a actuellement pas mal de questions C++/Lua/SWIG ici sur SO, ça pourrait valoir votre temps en lire quelques-uns. –