python调用c/c++语言编写的程序

将c/c++编写的程序编译成动态链接库(dll)文件,将得到的.dll文件放到py文件目录下便于直接调用,然后编写py文件进行调用

from ctypes import *

dll = CDLL('./dll1.dll')

a = dll.get_id()
print(a) #10
b = dll.add(1,2)
print(b)#3

这里就测试了2个简单的函数,运行结果也是正确的。

还有其他方法引入dll文件,dll = ctypes.windll.LoadLibrary( 'test.dll' ) dll = ctypes.WinDll( 'test.dll' ),但是使用了之后出现ValueError: Procedure probably called with too many arguments (8 bytes in excess)的错误,所以改为上面的代码。

以下是c语言的代码 

simple.h

#ifndef SIMPLE_H_INCLUDED
#define SIMPLE_H_INCLUDED
#ifdef BUILD_DLL

    #define DLL_EXPORT __declspec(dllexport)

#else

    #define DLL_EXPORT __declspec(dllimport)

#endif

int DLL_EXPORT get_id(void);
int DLL_EXPORT add(int,int);
#endif // SIMPLE_H_INCLUDED

simple.c

#include "simple.h"
int DLL_EXPORT get_id(void)
{
    return 10;
}

int DLL_EXPORT add(int x,int y)
{
    return x+y;
}

  里面的内容也很简单,不用做太多介绍了。

  创建方法dll方法:

    环境准备:1,gcc g++来编译运行c/c++程序

    2,codeclocks的下载和安装

    创建过程:进入codeblocks,选择File-new-project-Dynamic Link Library,选择go,然后next,输入Project title(自己取),点击next-finish,就会在左边显示出刚刚创建的项目sources中存放的是c/c++文件,Headers目录存放着.h文件,里面声明函数导出为dll文件,在.c/.c++文件中是具体的功能实现,编写好了程序保存之后,直接按F9运行(图标菜单栏第14个,菜单栏build下的第四个选项),执行成功了之后,会在项目的电脑目录下生成xxx/bin/debug/xxx.dll文件,到此生成dll文件过程完成了。


    这篇文章就介绍到这里了,c/c++在执行效率上要高很多,可以把需要高效的算法问题写好,python里面直接调用就行。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值