extends python2.7 with cpp by visual studio 2017

本文介绍如何使用C++创建Python扩展模块。通过配置项目属性、设置目录路径及编写C++源文件,实现了一个简单的扩展模块,该模块提供了一个名为add_one的功能,能够接收一个整数参数并返回其加一后的结果。

1

1- project -> properties

2- All Configurations -> x64

3- General
Target Extension: .pyd

4- VC++ Directories
Include Directories: D:\Python27\include
Library Directories: D:\Python27\libs

2

1- include.h

#ifdef _DEBUG
#define _DEBUG_WAS_DEFINED 1
#undef _DEBUG
#endif // _DEBUG

#include <Python.h>

#ifdef _DEBUG_WAS_DEFINED
#define _DEBUG 1
#endif // _DEBUG_WAS_DEFINED


2- main.cpp

#include "include.h"

PyObject* some_function(PyObject* self, PyObject* args)
{
    int i;
    if (!PyArg_ParseTuple(args, "i", &i)) {
        goto error;
    }
    return PyInt_FromLong(i + 1);
error:
    return 0;
}

PyMethodDef SpamMethods[] =
{
    {"add_one", (PyCFunction)some_function, METH_VARARGS, 0},
    {0, 0, 0, 0}
};

PyMODINIT_FUNC
initspam(void)
{
    PyObject *m;

    m = Py_InitModule("spam", SpamMethods);
    if (m == NULL)
        return;
}

转载于:https://www.cnblogs.com/otfsenter/p/6999600.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值