找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 4678|回复: 1

[求助] 高手请进!关于 c++ 传递函数指针到 Python 的问题

1

主题

2

帖子

2

积分

贫民

积分
2
a0xa0 发表于 2017-3-22 14:40:46 | 显示全部楼层 |阅读模式
3威望
需求如下:
将 c++ 的函数地址传给 Python,在 Python 里面调用该函数。

调用代码如下:
    PyObject* pModule = PyImport_ImportModule("FirstTest");
    if (!pModule) return "";
    PyObject* pFunc = PyObject_GetAttrString(pModule, "SetCallback");
    if (pFunc && PyCallable_Check(pFunc)){
        PyObject* pArgs = NULL;
        pArgs = PyTuple_New(2);
        PyTuple_SetItem(pArgs, 0, Py_BuildValue("O&",CallbackFun));
        PyTuple_SetItem(pArgs, 1, Py_BuildValue("u",_T("显示回调")));
        PyObject_CallObject(pFunc, pArgs);
    }

回调函数写法1:
static void _stdcall CallbackFun(LPCTSTR a_pArg){
     AfxMessageBox(a_pArg);
}
回调函数写法2:
static PyObject* CallbackFun(PyObject* self,PyObject* a_pArg){
    Py_UNICODE* pResult = NULL;
    if (PyArg_Parse(a_pArg, "u", &pResult)){
        AfxMessageBox(pResult);
    }
    return NULL;
}

Python 代码如下:
def SetCallback(function,arg1):
    function(arg1)

回复

使用道具 举报

1

主题

2

帖子

2

积分

贫民

积分
2
a0xa0  楼主| 发表于 2017-3-23 08:21:20 | 显示全部楼层
盼望高手来临
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表