一. 说明
1. 例如我们可以用Python写一个功能包(包里就只有一个py文件, py文件就只有一个函数, 例如HYAdd(a, b)), 因为是同一种语言, 所以很简单.
2. 现在相当于使用C++实现一遍, 但是C++和Python是异构语言, 所以C++需要按照Python的扩展框架, 实现其规定的接口从而扩展Python的功能.
3. 在Windows下, 载体肯定是使用DLL了.
4. 开发环境: VS2008 + Python27
二. 使用C++实现一个Python库: HYPyLib
参考: https://docs.python.org/2/extending/extending.html#writing-extensions-in-c
2.1 HYPyLib的功能和用法
HYPyLib中有函数HYAdd(nA, nB)和函数HYShow(strShow)
使用:
import HYPyLib
HYPyLib.HYAdd(2, 9)
HYPyLib.HYShow("Hello, World!")
三. 实现步骤
3.1 创建Win32 DLL, 工程名为HYPyLib
3.2 添加Python的h文件盒lib文件路径到DLL工程工程
(右键属性: ... 你懂的)
我的环境是D:\Python27\include和D:\Python27\libs
3.3 在HYPyLib实现如下代码
// HYPyLib.cpp : 定义 DLL 应用程序的导出函数。
//
#include "stdafx.h"
#include <Python.h>
#include <iostream>
// 对应的C++函数
static PyObject