VC中调用perl程序

改文档转载于:http://blog.sina.com.cn/s/blog_477759e70100cx82.html

今日,改写一些perl生成顺序递增数的代码。为满足测试,需要不断运行以生成新的一百万个随机数。由于起始数不同,每次都需要在代码里的修改再运行(或敲命令的传递)。若只是我使用,也不会觉得太麻烦。但,队友使用起来就不太方便。还是用VC做个界面,在C/C++代码里调用perl脚本,做成笨蛋按钮式的,呵呵。。。

 

    说真的,还真不知如何用C/C++调用perl呢?(当然这里的C/C++,俺是说用VS环境里的)。

 

   网上搜索一下,CSDN里花3个积分下了一份简便的说明文档(作者是谁忘了,别怪我)。操作步骤如下:

1.VS里的工程设置:

工具->选项->项目和解决方案->VC++目录 ,在“显示以下内容的目录(S):”下拉框中选择“包括文件”, 添加*\bin, *\lib\core, *表示perl的安装路径。

 

工具->选项->项目和解决方案->VC++目录 ,在“显示以下内容的目录(S):”下拉框中选择“库文件”,添加*\lib\core, *表示perl的安装路径。

 

把perl58.lib加入到工程中,项目->“项目”属性->配置属性->链接器->命令行, 在附加选项里加上perl56.lib(因为俺用的perl版本是5.6的)

2.在项目的代码里添加头文件

#include "EXTERN.h"     //引用外部的头文件
#include "perl.h"       //perl头文件

3. 项目程序代码

int _tmain(int argc, _TCHAR* argv[])
{
// char *embedding[] = {"","C:\\data.pl","E:\\dumptobin"};//perl脚本和参数,第一个为空,没有空格,
                                                        //第二个为脚本文件,第三个为脚本的输入参数
    char *embedding[] = {"","C:\\perl2\\CreateNumber.pl",""}; //俺的perl脚本的真实路径,没有输入参数

 static PerlInterpreter *my_perl;//定义一个perl解释器

 my_perl = perl_alloc();//为解释器分配资源

 perl_construct( my_perl );//创建一个解释器

 perl_parse(my_perl, NULL, 3, embedding, NULL);//perl解析
   //perl_parse函数原型是:
   //PERL_CALLCONV int perl_parse(PerlInterpreter* interp, XSINIT_t xsinit, int argc, char** argv, char** env)

 perl_run(my_perl);//运行

// int str = SvIV(perl_get_sv("lastValue", FALSE));//把perl脚本中的变量lastValue传给C中的变量str,无效的语句
// printf("返回值为%d.\n", str);

    perl_destruct(my_perl);//析构解释器

 perl_free(my_perl);//释放解释器

 return 0;
}

大体上就这些了。其它的用VS做界面框,各人需要自己去弄。(当然你得先安装了Perl)。

当然,这个仍是一个VC程序硬绑定一个perl脚本,若要实现程序界面(上面暂是控制台)和运行时刻选择perl脚本,嘿嘿,那就通过读一个配置文件以传递脚本名称吧。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值