Thread Perl in C++? (11 answers)
Opened by pktm at 2008-04-22 21:36

warp
 2009-03-26 18:50
#119864 #119864
User since
2009-03-25
5 articles
BenutzerIn
[default_avatar]
Danke schon mal für eure Antworten. Ja, ich habe das Forum über Google gefunden. :-)

Am fehlenden Include konnte es ja nicht liegen, denn es ließ sich ja auch ohne kompilieren.
Trotzdem hab ich's getestet und keine Verbesserung feststellen können.

Stattdessen hat das Einfügen des Aufrufs von PERL_SYS_INIT() gefruchtet. Jetzt läuft das Programm, also es macht ein Konsolenfenster auf, in das ich perl-Befehle tippen kann und sie am Ende mit Strg+D, Enter ausführen lassen kann.

Das Programm sieht also jetzt so aus:
Code (cpp): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "stdafx.h"
#include "perl.h"

static PerlInterpreter *my_perl;

int _tmain(int argc, _TCHAR* argv[])
{
    PERL_SYS_INIT(&argc, (char***) &argv);
    my_perl = perl_alloc();
    perl_construct( my_perl );
    perl_parse( my_perl, NULL, argc, (char**) argv, (char **)NULL );
    perl_run( my_perl );
    perl_destruct( my_perl );
    perl_free( my_perl );
    PERL_SYS_TERM();

    return 0;
}


Bloß habe ich noch nicht erkannt, was PERL_SYS_INIT() tut. Laut meiner IDE steckt hinter diesem Makro die Funktion Perl_sys_init(), die so aussieht:
Code (cpp): (dl )
1
2
3
PERL_CALLCONV void      Perl_sys_init(int* argc, char*** argv)
        __attribute__nonnull__(1)
        __attribute__nonnull__(2);

und __attribute__nonnull__() wiederum ist einfach leer definiert. Also kann ich da irgendwie keine Funktion erkennen.
Dennoch: ohne gibt's ne Exception, mit geht's. :-)

View full thread Perl in C++?