我意识到我必须DllImport的perlembed方法
perl_parse perl_alloc perl_free@H_301_4@等等., @H_301_4@但不知道如何使用与DLLImport一起使用的函数参数,特别是使用perl_parse方法. @H_301_4@我也意识到,一个related question已经存在,几乎在那里,但仍然通过创建一个C包装器,然后在C#中使用它解决了OP. @H_301_4@他说他不能DLLimport PERL_SYS_INIT3. @H_301_4@所以我的问题是如何正确地包装他们只使用C#并使用它?
解决方法
看这个;我希望它会有所帮助(它被称为早期版本)
@H_301_4@我从这里得到这个(perl)
@H_301_4@要在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);@H_301_4@以上内容相当于以下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);