最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python 如何调用cpp

    正文概述    2020-01-24   252

    python 如何调用cpp

    一、写一个cpp

    这个cpp的功能是 “加法器”,extern “C”的存在是因为python 的ctype可以调用C但是没有Cplustype~~~所以,~~~

    #include "/home/oujie/anaconda3/envs/pytorch-master/include/python3.7m/Python.h"
    #功能实现在这个函数中
    extern "C"
    int add_func(int a,int b)
    {
        return a+b;
    }
    #下面的这些是调用相关的API把数据格式进行转换,让python可以调用,这也是python的头文件里面的定义好的
    extern "C"
    static PyObject *_add_func(PyObject *self, PyObject *args)
    {
        int _a,_b;
        int res;
        if (!PyArg_ParseTuple(args, "ii", &_a, &_b))
            return NULL;
        res = add_func(_a, _b);
        return PyLong_FromLong(res);
    }
    extern "C"
    static PyMethodDef CppModuleMethods[] =
    {
        {
            "add_func",
            _add_func,
            METH_VARARGS,
            ""
        },
        {NULL, NULL, 0, NULL}
    };
    extern "C"
    PyMODINIT_FUNC initcpp_module(void)
    {
        (void) Py_InitModule("cpp_module", CppModuleMethods);
    }

    二、对上面的这个CPP编译

    #linux下面编译成so
    gcc -o add_demo.so -shared -fPIC add_demo.c
    #windows下编译成dll

    三、写一个python文件调用

    import ctypes
    dll=ctypes.cdll.LoadLibrary
    lib=dll("./add_demo.so")
    print("python call cpp so:")
    p=lib.add_func(2,3)
    print(p)

    起源地下载网 » python 如何调用cpp

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元