以python调用c++编写的参数化代码为例
0.配置vs环境 (参考末尾链接):添加包含目录、库目录等,并使用#include <Python.h>
1.编写需要调用的函数,如void parametorizer_disk(char* FilePath, char* savepath);
2.包裹函数Wrap。负责将Python的参数转化为C的参数(PyArg_ParseTuple),调用实际的parametorizer_disk,并处理parametorizer_disk的返回值,最终返回给Python环境。如图:
3.导出表test_methods。负责告诉Python这个模块里有哪些函数可以被Python调用。导出表的名字可以随便起,每一项有4个参数:
第一个参数是提供给Python环境的函数名称;
第二个参数是_great_function,即包裹函数;
第三个参数的含义是参数变长;
第四个参数是一个说明性的字符串。
导出表总是以{NULL, NULL, 0, NULL}结束。
如图:
4.(Python 3.x中不再使用Py_InitModule。现在,创建一个 PyModuleDef结构,然后将引用传递给 PyModule_Create。)
5.生成.pyd文件
a. 右键项目,生成。
b. 找到生成的.dll
文件,将其后缀更改为.pyd
c. 将该.pyd
文件移动到.py
目录中,可以在.py
中直接import该文件
参考链接:Windows下Python3调用C++函数_KunBB的博客-CSDN博客