ACHTUNG. Das ist ein Archiv des alten forum.ruby-portal.de. Die aktuelle Mailingliste gibt es auf lists.ruby-lang.org/pipermail/ruby-de.

NOTICE. This is a ready-only copy of the old forum.ruby-portal.de. You can find the current mailing list at lists.ruby-lang.org/pipermail/ruby-de.

Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 23 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Ruby in C/C++
BeitragVerfasst: 16 Mär 2007, 23:08 
Offline
Lehrling

Registriert: 16 Nov 2006, 19:41
Beiträge: 74
Also ich kann für eine bestimmte Anwendung nur C bzw. C++ benutzen, möchte aber Ruby integrieren, d.h. ihc möchte Ruby Scripts in C/C++ ablaufen lassen. Gibt es da eine Möglichkeit für? Wenn machbar für Windows (XP). Hab schon danach gesucht, aber hier 150 seiten bekommen...


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 16 Mär 2007, 23:14 
Offline
Meister

Registriert: 11 Sep 2006, 12:38
Beiträge: 226
Wohnort: Hamburg
Ich denke es kommt ganz drauf an, was diese unterscripte erledigen sollen.
Insgesamt ists natürlich unschön, ruby-code in c/c++ zu laden ( aber das ist auch nur meine meinung ).

Offensichtliche Möglichkeiten sind natürlich einfach externe scripte aufzurufen
( pipes oder execs würde heir einfallen )...
Dies ist aber nur abhängig von der Anforderung, wenn überhaupt, attraktiv...

Für Prolog uÄ hab ich mal mit ner Schnittstelle gearbeitet, dies direkt in
c++ zu integrieren, wenn das deine Absicht ist, kann ich dir nicht sagen,obs
sowas gibt. Ich gehe zwar davon aus, aber da es wie gesagt nicht mein
Geschmack ist, hab ich nach sowas noch nicht gesucht...

_________________
Of all the things he may have lost,
i think he misses his mind the most.
{ decoded .. Live Regex Debugger }


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 17 Mär 2007, 00:13 
Offline
Geselle

Registriert: 02 Nov 2006, 17:55
Beiträge: 103
Wohnort: Erfurt
Du hast letztendlich zwei Varianten, erstens du Schreibst Dinge die aus bestimmten Gründen nicht in Ruby zu machen sind in C/C++ als Ruby Klassen und nutzt Ruby für das Zusammenspiel, der teile, oder du erzeugst eine Interpreter Instanz in der du deinen Scripten eine Ruby Api zu deinem Programm anbietest, du kannst letzteres entweder direkt in deinem C/C++ Programm machen oder du Implementierst irgend welch Kommunikationsmöglichkeiten in dein Programm und baust eine Ruby Anbindung.
Infos findest du hier http://home.vr-web.de/juergen.katins/ru ... _ruby.html, hier http://www.onlamp.com/pub/a/onlamp/2004 ... _ruby.html und hier http://www.ruby-doc.org/doxygen/1.8.4/index.html.

Du müsstest vielleicht etwas genauer sagen was es für eine Art Programm ist, wenn du mehr Hilfe benötigst.


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 17 Mär 2007, 10:05 
Offline
Nuby
Benutzeravatar

Registriert: 11 Apr 2006, 12:52
Beiträge: 5
Hallo,
ich kann zudem dieses Tutorial sehr empfehlen:
http://metaeditor.sourceforge.net/embed/

_________________
Arch Linux


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 17 Mär 2007, 14:23 
Offline
ri
Benutzeravatar

Registriert: 02 Jun 2006, 23:18
Beiträge: 702
Hallo,

möglicherweise ist auch SWIG was für dich.

Grüße,
Matthias


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 20 Mär 2007, 22:54 
Offline
Lehrling

Registriert: 16 Nov 2006, 19:41
Beiträge: 74
Also, danke für die Antworten hier, meine Absicht ist:

Ich programmiere mit devkitpro für den NDS, und habe gesehen, dass da schon Leute Python für gemacht haben. Also wollte ich Ruby auch einbinden .
Das Problem: Man kann ausschließlich mit C bzw. C++ programmieren.


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 20 Mär 2007, 23:42 
Offline
Meister

Registriert: 11 Sep 2006, 12:38
Beiträge: 226
Wohnort: Hamburg
das würd der c++(ler) in mir nicht als Problem ansehen ;)

Aber im ernst, du kannst kein Ruby und willst Ruby einbinden.
Ich kann deine Motivation nicht erkennen.

_________________
Of all the things he may have lost,
i think he misses his mind the most.
{ decoded .. Live Regex Debugger }


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 24 Mär 2007, 22:45 
Offline
Lehrling

Registriert: 16 Nov 2006, 19:41
Beiträge: 74
also, ich behaupte nciht, dass ich perfekt in ruby bin, aber wieso meinst du ich könnte kein ruby?
Wenn du nichts konstruktives sagen kannst, dann brauch ich deinen rat auch nicht


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 25 Mär 2007, 00:38 
Offline
Böser Admin
Benutzeravatar

Registriert: 29 Jul 2005, 22:41
Beiträge: 2065
Wohnort: Beijing
Also ich weiß nicht wie radikal du an die Sache herangehen willst, jedoch würde ich auf Anhieb einfach empfehlen den gesamten Interpreter in das entsprechende Programm einzubinden. Soll heißen du schnappst dir die Sourcen, extrahierst den Interpreter vom Kommandozeileninterface und führst dann die Skripte direkt in deinem Programm aus. Natürlich kann man das alles auch über eine externe Schnittstelle realisieren. In diesem Fall führt wohl kein effizienter Weg an SWIG vorbei.


der
Daniel

_________________
mruby.sh | Ruby-Mine | Homepage


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 25 Mär 2007, 13:41 
Offline
Interpreter
Benutzeravatar

Registriert: 02 Jan 2005, 20:15
Beiträge: 1360
Da war Mindless wohl etwas zu vorschnell ;)

Wahrscheinlich hat Python auch mehr Dokumentation in diesem Bereich?
Für die 3D Toolkits, Engines etc.. scheinen die Scripting languages of choices meist
Python oder Lua zu sein

_________________
Retired. Macht es gut!


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 25 Mär 2007, 17:45 
Offline
Meister

Registriert: 11 Sep 2006, 12:38
Beiträge: 226
Wohnort: Hamburg
Dúron Salan hat geschrieben:
also, ich behaupte nciht, dass ich perfekt in ruby bin, aber wieso meinst du ich könnte kein ruby?
Wenn du nichts konstruktives sagen kannst, dann brauch ich deinen rat auch nicht


Hui ich hab mich verlesen.
Zitat:
Das Problem: Man kann ausschließlich mit C bzw. C++ programmieren.


Ich las hier, nicht "Man", sondern "Ich".
Nungut, tut mir leid, mich verlesen zu haben.

Aber danke für deine, ebenfalls nicht konstruktive, Kritik ;)

_________________
Of all the things he may have lost,
i think he misses his mind the most.
{ decoded .. Live Regex Debugger }


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 26 Mär 2007, 20:52 
Offline
Lehrling

Registriert: 16 Nov 2006, 19:41
Beiträge: 74
ok. sry, das Problem hier ist, um es klar auf den Tisch zu bringen:

Ich benutze Devkitpro (libnds + libfat + etc.) um für den ds anwendungen zu schreiben udn alle diese libs sind nunmal in c/c++ geschrieben und auch die art, wie das ganze dann kompiliert werden muss, existiert nur für c/c++, deshalb geht es eben nur so. Danke für den tip mit swig, ich hoffte, es führte ein weg darum, weil ich mich mit dem nicht anfreunden kann, aber ich werds tun müssen.


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 05 Apr 2007, 14:40 
Offline
Lehrling

Registriert: 16 Nov 2006, 19:41
Beiträge: 74
Also, ich komm mit SWIG da nicht weiter:

Ich habe zwar überall gefunden, wie ich C/C++ in Ruby einbinden kann mit SWIG, aber andersrum habe ich nirgendwo ein Tutorial oder auch nur einen Text, dass es überhaupt geht gefunden...
Auch auf der SWIG hp hab ich nichts gefunden, dass mir sagt, wie ich Ruby in C/C++ einbinde, sondern nur, wie ich C/C++ in Ruby einbinde.
Habe ich da etwas übersehen, oder geht es mit SWIG nicht???


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 05 Apr 2007, 16:10 
Offline
Obfuscator
Benutzeravatar

Registriert: 12 Sep 2003, 11:18
Beiträge: 509
Wohnort: Aachen
Benutzt du den OneClickInstaller?

Dann hast du das (ältere) Handbuch "Programming Ruby" wahrscheinlich mitinstalliert.

Schau dir da mal das Kapitel "Extending Ruby" an, speziell das Unterkapitel "Embedding a Ruby Interpreter":
Programming Ruby hat geschrieben:
In addition to extending Ruby by adding C code, you can also turn the problem around and embed Ruby itself within your application.

Es folgt reiner C-Code:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "ruby.h"

main() {
/* ... our own application stuff ... */
ruby_init();
ruby_script("embedded");
rb_load_file("start.rb");
while (1) {
if (need_to_do_ruby) {
ruby_run();
}
/* ... run our app stuff */
}
}

Ist es das was du suchst?

Gruß
pi


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 05 Apr 2007, 17:56 
Offline
Lehrling

Registriert: 16 Nov 2006, 19:41
Beiträge: 74
So wie du es beschreibst in etwa,ja .
Aber ich bin unter Linux und hab da swig und ruby 1.8.6 mit sh configure ,make und make install
installiert (derzeit versuche ich vergeblich ruby-opengl 0.33.0 zu installieren; es geht einfach nicht, obwohl ich alles habe, was auf der hp steht und so mache, wie dies sagen).

Was ich machen will ist, dass ich in meinem Spiel, welches ich in C++ bzw. C schreibe bestimmte Sachen in Ruby machen will, z.b. tagesabläufe von nscs scripten, ereignisse scripten, in etwa so, wie daedalus bei gothic2 benutzt wird.

Naja, ich werd damit weitermachen, sobald mir die Typen, die ruby-opengl weiterentwickeln endlich mal ne antwort schicken, warums ausgerechnet bei mir nicht funktioniert.
Aber höchstwarscheinlich ist das was du gepostet hast, das was ich gesucht habe, danke


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 23 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach: