2012-04-16 14 views
16

mi rendo conto che devo DllImport metodi perlembedCome incorporare l'interprete Perl in C# Programma

perl_parse 
perl_alloc 
perl_free 

ecc,

ma non è sicuro di come marhsall gli argomenti della funzione per il suo utilizzo con DLLImport in particolare con il metodo perl_parse.

Mi rendo anche conto che esiste già uno related question che è quasi arrivato ma che l'OP ha risolto creando un wrapper C e quindi utilizzandolo in C#.

dice che lui non era in grado di DllImport PERL_SYS_INIT3.

Quindi la mia domanda è come avvolgerli correttamente usando solo C# e usarlo?

+2

Puoi dire cosa hai provato? – Xharze

+0

Distribuzione particolare? ActiveState, fragola? – ZagNut

+0

Quello con cui ho provato era con Active State e ho consultato principalmente la discussione –

risposta

2

Guardate questa; Spero che vi aiuterà (è stato chiamato in prima versione)

ho ricevuto questo da qui (perl)

Per incorporare un interprete Perl in un programma C#, aggiungere un riferimento all'oggetto COM "Microsoft Script Control 1.0" e scrivere il codice come questo:

MSScriptControl.ScriptControlClass Interpreter; 
Interpreter = new MSScriptControl.ScriptControlClass(); 
Interpreter.Language = @"PerlScript"; 
string Program = @"reverse 'abcde'"; 
string Results = (string)Interpreter.Eval(Program); 
è possibile che questo

è equivalente alla seguente script Perl, che incorpora un interprete Perl all'interno di un interprete Perl:

use Win32::OLE; 
my $Interpreter; 
$Interpreter = Win32::OLE->new('ScriptControl'); 
$Interpreter->{Language} = 'PerlScript'; 
my $Program = "reverse 'abcde'"; 
my $Results = $Interpreter->Eval($Program); 
+1

Funzionerà solo se si dispone di Active State Perl installato con la funzione PerlScript. Se hai un Perl diverso (ad esempio, hai compilato Perl dal sorgente) non hai installato PerlScript nel sistema. –

Problemi correlati