酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

C/C++からPerlを使ってみよう

MFCからPerlスクリプトをコールしてみたくなったので関連記事を探してみました。

上記のサイトを参考に適当なスクリプトを作ってみました。2つの引数を表示するんで"print_arg.pl"という名前をつけましょう。

|pl|

引数を2つ受け取って表示するスクリプト

if (@ARGV != 2) { print "引数の数が一致しません\n"; exit; }

$argv1 = shift @ARGV; $argv2 = shift @ARGV;

printf("引数その1: %s\n", $argv1); printf("引数その2: %s\n", $argv2);

END ||< さて、呼び出し側のC/C++をサンプルを元に作ります。名前は"callperl.c"でええっか。

|cs| / from the Perl distribution /

include <EXTERN.h>

include <perl.h>

pragma comment(lib, "perl58.lib") //!< ★1

/ The Perl interpreter / static PerlInterpreter *my_perl;

void main() { char *perl[] = { "", "C:\print_arg.pl", "そのいち", "そのに" }; my_perl = perl_alloc (); perl_construct (my_perl); perl_parse (my_perl, NULL, 4, perl, (char **)NULL); perl_run (my_perl); perl_destruct (my_perl); //!< ★2 perl_free (my_perl); } ||<

★1・・・おそらく使用しているActive Perlのバージョンが違うので、参考にしたページとはライブラリの名前が違います。"perl56.lib"から"perl58.lib"に変わっています。 ★2・・・ここでブレークしてやれば、print_arg.plがコールされたのが判ると思います。