1.终端导入Cython
代码:pip install Cython
2.新建一个dl.py文件
def str_add(str1,str2):
return int(str1)+int(str2)
3.新建一个.pyx文件
4.终端运行cython run.pyx,生成一个.c文件和一个.h文件
5.打开VS2017,新建一个C++空项目
6.将生成的run.c文件和run.h文件复制并添加到新建项目中
7.在项目中添加一个空的.cpp,并填写代码
#include <Python.h>
#include <Windows.h>
#include "run.h"
extern "C"
{
__declspec(dllexport) int __stdcall _str_add(const char * a, const char * b)
{
return str_add(a, b);
}
}
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved)
{
switch (fdwReason)
{
case DLL_PROCESS_ATTACH:
Py_Initialize();
//dll初始化的时候调用,这是python3的写法,python2改成,initrun()。参见生成的run.h
PyInit_run();
break;
case DLL_PROCESS_DETACH:
Py_Finalize();
break;
}
return TRUE;
}
8.配置系统环境
注意:系统选择Release,x64
项目–属性–VC++目录
包含目录添加Python的include路径
库目录添加Python的libs路径
项目–属性–C/C++
附加包含目录添加run.c,run.h所在目录
9.配置属性
项目–属性–配置属性–常规
配置类型选择:动态库(.dll)
目标文件扩展名:.dll
10.运行后得到.dll