详解c++调用Python脚本中的函数的实例代码

  

<强> 1。环境配置

  python

安装完后,把python的包括和自由拷贝到自己的工程目录下

  

详解c++调用Python脚本中的函数的实例代码

  

然后在工程中包括进去

  

详解c++调用Python脚本中的函数的实例代码”> <img src=

  

<强> 2。例子

  

先写一个python的测试脚本,如下

  

详解c++调用Python脚本中的函数的实例代码

  

这个脚本里面定义了两个函数Hello()和_add()。我的脚本的文件名叫mytest.py

  

c++代码:

        # include“stdafx.h”   # include & lt; stdlib.h>   # include & lt; iostream>   # include "包括\ Python.h "   使用名称空间性病;   int _tmain (int命令行参数个数,_TCHAR * argv [])   {//初始化Python环境   Py_Initialize ();   PyRun_SimpleString(“进口sys”);//添加插入模块路径//PyRun_SimpleString (chdir_cmd.c_str ());   PyRun_SimpleString (“sys.path.append ('/') ");//导入模块   PyObject * pModule=PyImport_ImportModule (“mytest”);   如果(! pModule)   {   cout & lt; & lt;“Python模块失败了。”& lt; & lt;endl;   返回0;   }   cout & lt; & lt;“Python模块成功。”& lt; & lt;endl;   PyObject * pFunc=零;   pFunc=PyObject_GetAttrString (pModule,“你好”);   PyEval_CallObject (pFunc, NULL);//获取插入模块内_add函数   PyObject * pv=PyObject_GetAttrString (pModule _add);   如果(!pv | | ! PyCallable_Check (pv))   {   cout & lt; & lt;“找不到funftion (_add)”& lt; & lt;endl;   返回0;   }   cout & lt; & lt;“功能”(_add)成功。& lt; & lt;endl;//初始化要传入的参数,arg游戏配置成传入两个参数的模式   PyObject * args=PyTuple_New (2);//将长型数据转换成Python可接收的类型   PyObject * __arg1=PyLong_FromLong (4);   PyObject *最长=PyLong_FromLong (3);//将__arg1配置为参数带入的第一个参数   PyTuple_SetItem (args 0 __arg1);//将__arg1配置为参数带入的第二个参数   PyTuple_SetItem (args, 1)最长);//传入参数调用函数,并获取返回值   PyObject *成衣的=PyObject_CallObject (pv, args);   如果(现成的)   {//将返回值转换成型   长期结果=PyLong_AsLong(现成的);   cout & lt; & lt;结果:“& lt; & lt;结果& lt; & lt;endl;   }   Py_Finalize ();   系统(“暂停”);   返回0;   }      

注意脚本放的位置,确保c++代码可以引用它。

  

运行结果:

  

详解c++调用Python脚本中的函数的实例代码

  

<强> python 3.代码处理

  

在发布软件的时候,通常我们都不希望代码可以直接被别人看到。

  

以上的调试目录中的exe要想能够单独运行,必须把python脚本拷过去。为了不让别人能直接看到我的代码,我拷过去的是生成的.pyc文件

  

详解c++调用Python脚本中的函数的实例代码

  

拷过去之后修改文件名为:

  

详解c++调用Python脚本中的函数的实例代码

  

实现了一个简单的python代码的加密。

  

不过据说可以反编译,但是对我来说已经够了。
  

  

  

以上所述是小编给大家介绍的详解c++调用Python脚本中的函数的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

详解c++调用Python脚本中的函数的实例代码