Comment colles-tu le code Lua en C ++?
Utilisez-vous Luabind, toLua++, ou une autre bibliothèque (si oui, lequel) ou aucun?
Pour chaque approche, ce sont les pro et con?
source d'informationauteur steffenj
Vous devez vous connecter pour publier un commentaire.
Je ne peux pas vraiment d'accord avec le " déploiement de votre propre vote, la liaison de types de base et statique C fonctions Lua est trivial, oui, mais la situation change dès que vous commencez à traiter avec des tables et des metatables; les choses vont plus délicat très rapidement.
LuaBind semble faire le travail, mais j'ai un problème philosophique. Pour moi, il semble comme si vos types sont déjà compliqué par le fait que Luabind est fortement basé sur un modèle ne va pas rendre votre code plus facile à suivre, comme un de mes amis a dit: "vous aurez besoin d'Herbe de l'Obturateur pour comprendre la compilation des messages". De Plus il dépend de Boost, plus les temps de compilation obtenir un effet considérable, etc.
Après avoir essayé quelques liaisons, Tolua++ me semble la meilleure. Tolua ne semble pas être très en développement, où, comme Tolua++ semble fonctionner correctement (plus de la moitié de la 'Tolua' tutoriaux il y a, en fait, " Tolua++' tutoriels, faites moi confiance:) Tolua ne générer les bonnes choses, la source peut être modifié et il semble traiter les cas plus complexes (comme les modèles, les syndicats, l'inconnu les structures, etc, etc)
Le plus gros problème avec Tolua++ semble être le manque de tutoriels, de pré-série de projets Visual Studio, ou le fait que la ligne de commande est un peu difficile à suivre (vous chemin/les fichiers ne peuvent pas avoir des espaces blancs dans les Fenêtres au moins - et ainsi de suite), pour moi c'est le vainqueur.
Pour répondre à ma propre question dans la deuxième partie:
Luabind: une fois que vous savez comment associer les méthodes et les classes par le biais de ce maladroit syntaxe du modèle, c'est assez simple et facile d'ajouter de nouvelles liaisons. Cependant, luabind a un impact significatif sur les performances et ne doit pas être utilisé pour des applications temps-réel. Environ 5 à 20 fois plus de ressources que l'appel de fonctions C permettant de manipuler la pile directement.
Je n'utilise pas de bibliothèque. J'ai utilisé GORGÉE d'exposer une bibliothèque en C il y a quelques temps, mais il y avait trop de frais généraux, et j'ai arrêter de l'utiliser.
Les pros sont de meilleures performances et plus de contrôle, mais sa prend plus de temps pour écrire.
Utiliser des API Lua pour vos fixations -- et les garder simple. Prenez inspiration dans l'API en elle-même (AUXILIAIRE de bibliothèque) et les bibliothèques par Lua auteurs.
Avec un peu de pratique API brute est la meilleure option -- une flexibilité maximale et un minimum de frais généraux inutiles. Vous avez ce que vous voulez et rien de plus, la façon dont vous avez besoin.
Si vous devez lier de grandes bibliothèques de tiers automatique des générateurs comme tolua, tolua++ (ou même à rouler pour le cas spécifique). Il serait gratuit vous au travail manuel.
Je vous déconseille d'utiliser Luabind. Au moment du développement de la panne (cependant commencent à revenir à la vie), et si vous voulez répondre à un certain angle cas, vous pourriez être sur votre propre. Aussi Luabind lourdement utilise le modèle de la métaprogrammation. Cela peut (et ne peut) être inacceptable, selon le point de vue.