我在C++中调用python写的函数为什么不行?
可以具体说一下是怎么调用的吗,像我使用C/C++调用这个外部程序(例如Python程序)时,我是这么做的,通过命令行参数通信,给个模板,注意看我的注释。
C的部分(用C++也行,不过不难,也不是重点):
#include<stdlib.h>
#include<stdio.h>
int main(){
char pic_dir[255],pic_dir[255],cmd[255];
printf("What is your pic_dir? (e.g. C:\\a.jpg)\n");
/*虽然我强烈认为命名上应该不用pic_dir而是用pic_path*/
scanf("%s",pic_dir);
printf("What is your pic_name?(e.g. b.jpg)\n");
scanf("%s",pic_name);
printf("so we are calling a python program to deal with those above, please wait...\n");
sprintf(cmd,"python process.py %s %s ",pic_dir,pic_name);
/*这里是一个关键点,python的运行目录在你的PATH环境变量里有,如下图最后一行*/
system(cmd);
return 0;
}
process.py:(部分内容,主要是在process方法定义后面加一点东西)
def process(pic_dir,pic_name):
...#(这里的语句体(suite)不用改, 加上后面两句就行)
from sys import argv
process(argv[1],argv[2])
OK完成