capi.py
import myModule as capi
print(capi.Message("Bonjour, Japon"))
Exécuter
capi>python capi.py
Bonjour, Japon
Bonjour, Japon
capilib.c
#include <Python.h>
static PyObject* Message(PyObject* self, PyObject* args){
char* str;
if (!PyArg_ParseTuple(args, "s",&str)){
return NULL;
}
printf("%s\n",str);
return Py_BuildValue("s", str);
}
// Function Definition struct
static PyMethodDef myMethods[] = {
{ "Message", Message, METH_VARARGS, "Prints Message"},
{ NULL }
};
static struct PyModuleDef myModule = {
PyModuleDef_HEAD_INIT,"myModule","C API Module",-1,myMethods
};
PyMODINIT_FUNC PyInit_myModule(void){
return PyModule_Create(&myModule);
}
** Point d'attention **
char* str;
//Capturer les arguments
if (!PyArg_ParseTuple(args, "s",&str)){
return NULL;
}
//Créer une valeur de retour
return Py_BuildValue("s", str);
--PyArg_ParseTuple (args, "s", & str) lit la chaîne d'argument "s" dans str.
Recommended Posts