前提已經有.c 和.i文件
用swid編譯了.i文件生成了wrap.c文件和.py文件
vc創建dll工程
將.h加入到頭文件中.c文件和wrap.c文件添加到源文件中 將.i文件添加到工程目錄下
Tools->Options->Directories中修改include 和lib 添加python里的include 和libs
把\libs\python27.lib復制一份 并且改名為python27_d.lib
修改 pyconfig.h (我只修改了前兩樣 后面沒修改也成功了)
#ifdef _DEBUG
# define Py_DEBUG
#endif
為#ifdef _DEBUG
//# define Py_DEBUG
#endif
修改
# ifdef _DEBUG
# pragma comment(lib,"python24_d.lib")
# else
# pragma comment(lib,"python24.lib")
# endif /* _DEBUG */
為
# ifdef _DEBUG
# pragma comment(lib,"python24.lib")
# else
# pragma comment(lib,"python24.lib")
# endif /* _DEBUG */
修改object.h
修改
#if defined(Py_DEBUG) && !defined(Py_TRACE_REFS)
#define Py_TRACE_REFS
#endif
為
#if defined(Py_DEBUG) && !defined(Py_TRACE_REFS)
// #define Py_TRACE_REFS
#endif
把生成的name.dll文件改為_name.pyd 將前面的.py和_name.pyd文件放到一個文件中(我試的時候只有.pyd文件就可以)
新建一個test文件:
import name
aa = name.somefunction()
print(aa)