6
votes

Comment appeler une dll C # dans Ruby?

Comment appeler une dll C # dans Ruby?


2 commentaires

sonne comme une dupe Stackoverflow.com/Questtions/1025086/...


Pas une dupe (de la question citée au moins) - qui consistait à appeler du code non géré, celui-ci est dirigé.


4 Réponses :


1
votes

avec ironruby http://iruruby.net/


0 commentaires

4
votes

Je peux penser à quelques possibilités:

  • Écrivez (ou demandez à quelqu'un d'écrire) une enveloppe COM pour votre DLL, s'il n'en a pas déjà un, utilisez la bibliothèque Win32ole de Ruby's's Win32ole pour l'appeler;
  • Jetez un coup d'œil à RUBYCLR , dont l'un des auteurs était John Lam , qui a continué à travailler sur ironRuby chez Microsoft. (Je ne pense pas que cela soit maintenu plus longtemps, et cela peut ne pas prendre en charge les versions .NET supérieures à 2.0);
  • Comme déjà mentionné ailleurs, consultez l'utilisation de IRRUBY , si c'est une option technique pour vous.

    Il y a un fil sur le sujet Ici . Notez que le dernier message est réellement de John Lam (ressemble à mars 2009) où il semble confortable affirmer que Rubycr est toujours fonctionnel ...


0 commentaires

2
votes

Vous pouvez également écrire une DLL natif -> C # wrapper en utilisant géré C ++

exporter toutes les fonctions que vous souhaitez app appelle C dans la DLL, par exemple P>

extern "C" __declspec ( dllexport ) void CallManagedMethod() {
   Something^ myManagedObject ...
}


0 commentaires

2
votes

Vous pouvez utiliser des exportations non gérées ( https://sites.google.com/ Site / Robertgiesecke / Accueil / Uploads / UnManageDexports ) créer une entrée non gérée dans C #. Par exemple, vous pouvez créer un init_youmodulename, qui est requis pour une extension Ruby. Ensuite, vous pouvez utiliser nécessiter «YOUMODULENAME» pour le charger dans RUBY.

Ce lien ( https://bitbucket.org/icehuli/sucsextTutorial ) a plusieurs exemples. Bien qu'il vise dans des extensions de rubis pour Sketchup, il peut toujours être intéressant pour vous d'apprendre comment cela fonctionne.


0 commentaires