py文件打包成dll文件,C#调用

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
在这里插入图片描述

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值