使用VisualStudio2019生成dll文件,python调用C++封装的函数

2 篇文章 1 订阅

打开VisualStudio创建dll项目
在这里插入图片描述
项目名称pyth_triples
在这里插入图片描述

删除多余的文件
在这里插入图片描述
新建一个源文件pyth_triples.cpp,并写入代码
在这里插入图片描述

// pyth_triples.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。

// 定义 DLL 应用程序的导出函数。
#define EXPORT __declspec(dllexport)
#include <iostream>
#include <cmath>
using namespace std;
extern "C" {
    EXPORT int count_triples(int limit) {
        int result = 0;
        for (int a = 1; a <= limit; a++) {
            for (int b = a + 1; b <= limit; b++) {
                for (int c = b + 1; c <= limit; c++) {
                    if (c * c > a * a + b * b) {
                        break;
                    }
                    if (c * c == (a * a + b * b)) {
                        result += 1;
                    }
                }
            }
        }
        return result;
    }
}


调整为x64
在这里插入图片描述

右键项目属性,禁用预编译头
在这里插入图片描述

右键项目->生成(或重新生成),
在工程目录的 x64/Debug 路劲下,生成了一个dll_triples.dll文件
在这里插入图片描述

把这个dll文件复制到pycharm的某个目录下
在这里插入图片描述

python调用C++封装的dll文件

import ctypes
import time
lib = ctypes.cdll.LoadLibrary('D:\\AllProjects\\PycharmProjects\\PythonUseC\\cpplib\\dll_triples.dll')
t = time.process_time()
print(lib.count_triples(1000))
e = time.process_time()
print((e-t)*1000, "ms")

查看以下执行效果
执行时间93毫秒,如果直接用python执行这种代码,则要57600毫秒左右
在这里插入图片描述

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值