编译到 .dll,把后缀改为 .pyd,然后运行 python,把路径设置到 sys.path,就可以 import 啦。
---------------------------------------------------------------------------------------
#include <Python.h>
#pragma comment(lib, "python27.lib")
static PyObject *SpamError;
static PyObject *
spam_system(PyObject *self, PyObject *args)
{
const char *command;
int sts;
if (!PyArg_ParseTuple(args, "s", &command))
return NULL;
sts = system(command);
if (sts < 0) {
PyErr_SetString(SpamError, "System command failed");
return NULL;
}
return Py_BuildValue("i", sts);
}
static PyMethodDef SpamMethods[] = {
{"system", spam_system, METH_VARARGS, "Execute a shell command"},
{NULL, NULL, 0, NULL}
};
PyMODINIT_FUNC
initspam(void)
{
PyObject *m;
m = Py_InitModule("spam", SpamMethods);
if (m == NULL)
return;
SpamError = PyErr_NewException("spam.error", NULL, NULL);
Py_INCREF(SpamError);
PyModule_AddObject(m, "error", SpamError);
}
---------------------------------------------------------------------------------------
>> import spam
>> spam.system("dir")
...
0
---------------------------------------------------------------------------------------
评论