2012-04-16 13 views
16

que darse cuenta de que tengo que DllImport los métodos perlembedCómo incrustar el intérprete Perl en un programa C#

perl_parse 
perl_alloc 
perl_free 

etc.,

Pero no estoy seguro de cómo Marhsall los argumentos de la función para usarlo con DLLImport especialmente con el método perl_parse.

También me doy cuenta de que ya existe un related question que está casi allí pero aún así el OP ha resuelto creando un envoltorio en C y luego usándolo en C#.

Dice que no pudo importar DLL PERL_SYS_INIT3.

Así que mi pregunta es cómo envolverlos adecuadamente usando solo C# y usarlo?

+2

¿Podría decir lo que ha intentado? – Xharze

+0

¿Distribución particular? ActiveState, Strawberry? – ZagNut

+0

El que probé con Active State y consulté principalmente el doc. Doblado –

Respuesta

2

Mira esto; Espero que le ayudará (se le llamaba en versión temprana)

Tengo esto de aquí (perl)

Para incorporar un intérprete de Perl en un programa en C#, agregue una referencia al objeto COM "Microsoft Script Control 1,0" y escribir código como este:

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

el anterior es equivalente a la siguiente secuencia de comandos Perl, que incrusta un intérprete de Perl dentro de un intérprete Perl:

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

Eso funcionará solo si tiene instalado Perl de estado activo con la función PerlScript. Si tiene un Perl diferente (por ejemplo, compiló Perl desde la fuente), no tiene instalado PerlScript en el sistema. –

Cuestiones relacionadas