Fremdcode in C einbinden

zwergzwerg

Mitglied
Hallo!

Ich möchte Perlcode in C einbinden.

Hab im Internet schon danach gesucht, wie man Fremdcode in C einbindet, habe aber immer nur gefunden, dass Assemblercode eingebunden wird.

Wie heißen die Schlüsselwörter, dass ich Perl Code einbinden kann? Muss ich da eine eigene Funktion machen, brauche ich irgendeinen speziellen Header? Kann ich an jeder Stelle des Programms Fremdcode einbinden? Wie gehe ich mit Variablen aus C um. Kann ich auf die aus dem Fremdcode aus zugreifen oder gelten dort dann nur z.B.: "Perl-Regeln".
Wie kann ich mit "Ergebnissen" (also Variablenwerte), die ich in Perl erziehle, in C weiterarbeiten?

Danke!
 
Soviel ich weiß, geht das nicht.
Du könntest nur mit
Code:
system("perl script.pl");
ein Perlskript aus dem Code heraus aufrufen.
 
moin


Warum sollte das auch gehen?
Lerne C und wandle den Perlcode in C um.

Oder speicher die Ergebnisse aus dem PerlCode irgendwo ab und lese sie mit C wieder aus.


mfg
umbrasaxum
 
Nun gehen tut das schon, und manchmal macht das auch sinn.

Beispiel:
3d Engine in C++
Spiel content in Java/.net/Perl/LUA/...


Schlagwort ist entweder "Native Invocation"... Das heist so viel wie du baust dir in C++ ne DLL + lib und bindest dise statisch, oder du machst es umgekehrst, und gerierst aus dem Code den du einbinden möchtest Sprungpunkte...

Für z.B. LUA/PHP/JAVA gibts dafür fertige Bibliotheken... Perl weis ich nicht ob es das gibt, aber du kannst natürlich immer den Umweg über Sockets/Pipes/... nehmen und Signale zwischen den Modulen schicken.
 
moin


@raven-bs
Ja, da hast du schon recht. Aber zumindest ich, habe das so verstanden das er C und PerlCode direkt in einer Quelcodedatei "mischen" will.


mfg
umbrasaxum
 
Aber zumindest ich, habe das so verstanden das er C und PerlCode direkt in einer Quelcodedatei "mischen" will.
So habe ich das auch verstanden.
Aber auch der Weg mit der DLL bzw. LIB wird mit Perl nicht funktioneiern. Perl ist eine Interpretersprache, da kann man weder eine DLL noch eine EXE draus machen.
 
moin


jokey2 hat gesagt.:
Perl ist eine Interpretersprache, da kann man weder eine DLL noch eine EXE draus machen.
Das ist so nicht ganz richtig, es gibt Programme wie z.B. "Perl2Exe" die sowas machen, über den Sinn lässt sich aber streiten.... Und was damit alles geht weiss ich leider nicht.


mfg
umbrasaxum
 
Zurück