中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

C擴(kuò)展庫中回調(diào)Python函數(shù)

2018-07-20    來源:open-open

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用
// c 程序 段
static PyObject *gc_before_extract = NULL;

/// 設(shè)置回調(diào)
static PyObject *
SetBeforeCallbackFn(PyObject *dummy, PyObject *args)
{
PyObject *temp = NULL;

if (PyArg_ParseTuple(args, "O:set_callback", &temp)) {
   if (!PyCallable_Check(temp)) {
    PyErr_SetString(PyExc_TypeError, "parameter must be callable");
   }
   Py_XINCREF(temp);         /* Add a reference to new callback */
   Py_XDECREF(gc_before_extract); /* Dispose of previous callback */
   gc_before_extract = temp;       /* Remember new callback */
}

return Py_BuildValue("l", (gc_before_extract == NULL) ? 0 : 1);
}

/// 調(diào)用上面函數(shù)設(shè)置的python腳本函數(shù)
int BeforeExt(char *pBeforeExtract)
{
PyObject* pArgs = NULL;
PyObject* pRetVal = NULL;
int    nRetVal = 0;

pArgs = Py_BuildValue("(s)", pFileName);
pRetVal = PyEval_CallObject(gc_before_extract, pArgs);
if (pRetVal)
{
   fprintf(stderr, "PyEval_CallObject : ok \r\n");
   nRetVal = PyInt_AsLong(pRetVal);
   fprintf(stderr, "PyEval_CallObject : return : %d \r\n", nRetVal);
}
Py_DECREF(pArgs);
Py_DECREF(pRetVal);
return nRetVal;
}

/// 測試函數(shù)
static 
PyObject* my_test_callback(PyObject *self, PyObject *args) 
{ 
PyObject * arglist; 
PyObject * result = NULL;

BeforeExt("good");

result = PyEval_CallObject(gc_before_extract, args); 
if (result)
{
   Py_DECREF(result); 
}
Py_INCREF(Py_None); 
return Py_None; 
}

/////// python 腳本
from pyArchive import *
from ctypes import *

# 回調(diào)函數(shù)必須有一個int型的返回值
def set_callback_fn(abc) :
    print "t_callback_fn say : {0}".format(abc)
    return 11

CMPFUNC = CFUNCTYPE(c_int, c_char_p) 
_callback = CMPFUNC(set_callback_fn)

    if SetBeforeCallbackFn(_callback):
        print "set call back ok"
        my_test_callback("script call : good luck")
    else :
        print "set call back fail"

標(biāo)簽: isp 腳本

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:Android添加觸摸手勢識別監(jiān)聽

下一篇:數(shù)學(xué)表達(dá)式計算器