//
pyUtil.cpp : 定义 DLL 应用程序的入口点。
//
#ifdef PYUTIL_EXPORTS
#define PYUTIL_API __declspec(dllexport)
#else
#define PYUTIL_API __declspec(dllimport)
#endif
#include < windows.h >
#include < string >
#include < Python.h >
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
... {
switch (ul_reason_for_call)
...{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
std:: string Recognise_Img( const std:: string url)
... {
// 返回结果
return "从dll中返回的数据... : " +url;
}
static PyObject * Recognise(PyObject * self, PyObject * args)
... {
const char *url;
std::string sts;
if (!PyArg_ParseTuple(args, "s", &url))
return NULL;
sts = Recognise_Img(url);
return Py_BuildValue("s", sts.c_str() );
}
static PyMethodDef AllMyMethods[] = ... {
...{"Recognise", Recognise, METH_VARARGS},
...{NULL, NULL} /**//* Sentinel */
} ;
extern " C " PYUTIL_API void initpyUtil() // 每个模块必须有的函数,名称格式为"init"+“模块名”
... {
PyObject *m, *d;
m = Py_InitModule("pyUtil", AllMyMethods); //这两步必须照写,保证有变量赋值
d = PyModule_GetDict(m); //
}
//
#ifdef PYUTIL_EXPORTS
#define PYUTIL_API __declspec(dllexport)
#else
#define PYUTIL_API __declspec(dllimport)
#endif
#include < windows.h >
#include < string >
#include < Python.h >
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
... {
switch (ul_reason_for_call)
...{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
std:: string Recognise_Img( const std:: string url)
... {
// 返回结果
return "从dll中返回的数据... : " +url;
}
static PyObject * Recognise(PyObject * self, PyObject * args)
... {
const char *url;
std::string sts;
if (!PyArg_ParseTuple(args, "s", &url))
return NULL;
sts = Recognise_Img(url);
return Py_BuildValue("s", sts.c_str() );
}
static PyMethodDef AllMyMethods[] = ... {
...{"Recognise", Recognise, METH_VARARGS},
...{NULL, NULL} /**//* Sentinel */
} ;
extern " C " PYUTIL_API void initpyUtil() // 每个模块必须有的函数,名称格式为"init"+“模块名”
... {
PyObject *m, *d;
m = Py_InitModule("pyUtil", AllMyMethods); //这两步必须照写,保证有变量赋值
d = PyModule_GetDict(m); //
}
编译完成后将DLL文件改名为pyd文件,并放在PYTHON可以搜到的目录下就可以import了