如何在 C# 程序中嵌入 perl 解释器

本文关键字:perl 解释器 程序 | 更新日期: 2023-09-27 18:31:28

我意识到我必须DllImport perlembed 方法

perl_parse
perl_alloc
perl_free

等。

但是不确定如何封送所有函数参数以使用它DLLImport尤其是perl_parse方法。

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

他说他无法DLL导入PERL_SYS_INIT3。

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

如何在 C# 程序中嵌入 perl 解释器

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

我从这里得到这个(perl)

若要在 C# 程序中嵌入 Perl 解释器,请添加对 COM 对象"Microsoft脚本控制 1.0"的引用,并编写如下代码:

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

以上等效于下面的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);