如何将Perl解释器嵌入到C#程序中

Viv*_*ard 16 c# perl interop dllimport

我意识到我必须DllImport使用perlembed方法

perl_parse
perl_alloc
perl_free
Run Code Online (Sandbox Code Playgroud)

等等.,

但不确定如何使用函数参数来DLLImport特别使用perl_parse方法.

我也意识到一个相关的问题已经存在,几乎存在,但OP仍然通过创建一个C包装器然后在C#中使用它来解决.

他说他无法DLLimport PERL_SYS_INIT3.

所以我的问题是如何只使用C#正确包装它们并使用它?

Lik*_*urg 2

看这个; 我希望它会有所帮助(在早期版本中被称为)

我从这里得到这个(perl

要在 C# 程序中嵌入 Perl 解释器,请添加对 COM 对象“Microsoft Script Control 1.0”的引用并编写如下代码:

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

上面相当于下面的 Perl 脚本,它在 Perl 解释器中嵌入了 Perl 解释器:

use Win32::OLE;
my $Interpreter;
$Interpreter = Win32::OLE->new('ScriptControl');
$Interpreter->{Language} = 'PerlScript';
my $Program = "reverse 'abcde'";
my $Results = $Interpreter->Eval($Program);
Run Code Online (Sandbox Code Playgroud)