Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "PythonrootlibManager.h"
- #include "Python.h"
- #ifdef _DEBUG
- #pragma comment (lib, "rootlib_d.lib")
- #else
- #pragma comment (lib, "rootlib.lib")
- #endif
- struct SMethodDef
- {
- char* func_name;
- void (*func)();
- };
- PyMODINIT_FUNC initPrototype();
- PyMODINIT_FUNC initserverInfo();
- PyMODINIT_FUNC initsystem();
- SMethodDef rootlib_init_methods[] =
- {
- { "Prototype", initPrototype },
- { "serverInfo", initserverInfo },
- { "system", initsystem },
- { NULL, NULL },
- };
- static PyObject* isExist(PyObject *self, PyObject *args)
- {
- char* func_name;
- if(!PyArg_ParseTuple(args, "s", &func_name))
- return NULL;
- for (int i = 0; NULL != rootlib_init_methods[i].func_name;i++)
- {
- if (0 == strcmp(rootlib_init_methods[i].func_name, func_name))
- {
- return Py_BuildValue("i", 1);
- }
- }
- return Py_BuildValue("i", 0);
- }
- static PyObject* import(PyObject *self, PyObject *args)
- {
- char* func_name;
- if(!PyArg_ParseTuple(args, "s", &func_name))
- return NULL;
- for (int i = 0; NULL != rootlib_init_methods[i].func_name;i++)
- {
- if (0 == strcmp(rootlib_init_methods[i].func_name, func_name))
- {
- rootlib_init_methods[i].func();
- if (PyErr_Occurred())
- return NULL;
- PyObject* m = PyDict_GetItemString(PyImport_GetModuleDict(), func_name);
- if (m == NULL) {
- PyErr_SetString(PyExc_SystemError,
- "dynamic module not initialized properly");
- return NULL;
- }
- Py_INCREF(m);
- return Py_BuildValue("S", m);
- }
- }
- return NULL;
- }
- void initrootlibManager()
- {
- static struct PyMethodDef methods[] =
- {
- {"isExist", isExist, METH_VARARGS},
- {"moduleImport", import, METH_VARARGS}, // "import"¶ó´Â À̸§Àº keyword¶ó »ç¿ë ¸øÇÔ...
- {NULL, NULL},
- };
- PyObject* m;
- m = Py_InitModule("rootlib", methods);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement