J'ai inclus Ruby dans mon application C++. J'ai généré les liaisons en utilisant SWIG. Fondamentalement, je lance le fichier ruby, puis Ruby prend le relais et appelle ma classe C++. En fonction de ma question précédente, je voudrais ramener l'instance actuelle de la classe définie dans le fichier ruby à la classe C++ pour pouvoir exécuter des méthodes d'instance.Comment obtient-on l'instance d'une classe Ruby s'exécutant dans le fichier RB actuel? (Incorporation de Ruby en C++)
J'exécuter le fichier ruby comme suit:
rb_eval_string_protect(<ruby script string>, &status);
rb_funcall(Qnil, rb_intern("main"), 0);
La méthode globale principale dans le script crée une instance de la classe définie dans le fichier. C'est l'exemple que je suis après.
Si je dois, j'ajouterai un paramètre ou une autre fonction pour renvoyer l'instance, cependant, je ne suis pas sûr comment définir cela en C++ de sorte que lorsque SWIG génère la liaison, tout fonctionne bien.
Toute aide serait appréciée.
Question précédente: Calling Ruby class methods from C++
Peut-être que vous pourriez inclure un lien vers la vous « question précédente » référence. –