J'écris une application qui appelle le code ruby de c. J'ai un peu de difficulté et je me demandais si quelqu'un pouvait me pointer dans la direction du rite.Incorporation de Ruby, appel d'une fonction à partir de C
J'ai actuellement dans mon C.
#include ruby.h
main()
{
ruby_init();
rb_require("myRubyFile");
rb_funcall(rb_module_new(), rb_intern("RubyFunction"), 0, NULL);
}
Mon fichier Ruby est dans le même répertoire que mon fichier c et est appelé myRubyFile.rb et contient une définition de la fonction RubyFunction().
Ceci est une réduction de ce que je veux réellement faire, juste le rendant plus lisible pour les autres. J'ai juste besoin de quelques commentaires quant à savoir si c'est la bonne méthode pour appeler le code ruby de mon fichier c.
Cordialement
suggestions rapides: 1) n'omettent ruby_init_loadpath() (je SEGV sans cela), 2) n » t nommez la méthode 'RubyFunction' - lorsqu'elle est appelée sans parens ruby, elle recherchera une * constante * du même nom, et 3) vous voudrez probablement une méthode" statique "définie dans une classe ou un module spécifique à l'application, pas une def'd contre le 'soi 'implicite (voir réponse). – pilcrow