16

私は、私がDllImportperlembedメソッドをしなければならないことを理解しています

perl_parse
perl_alloc
perl_free

等。、

DLLImportしかし、特にメソッドで使用するために関数の引数をマーシャリングする方法がわかりませんperl_parse

また、関連する質問がすでに存在することも認識していますが、これはほとんど存在しますが、OP は C ラッパーを作成して C# で使用することで解決しています。

彼は、PERL_SYS_INIT3 を DLLimport できなかったと言っています。

だから私の質問は、C#のみを使用してそれらを適切にラップして使用する方法ですか?

4

1 に答える 1

2

これを見てください。私はそれが役立つことを願っています(それは初期のバージョンで呼ばれていました)

私はここからこれを手に入れました(perl

PerlインタープリターをC#プログラムに埋め込むには、COMオブジェクト「MicrosoftScript Control 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);
于 2012-04-25T19:33:13.720 に答える