.c文件生成64/32位的.dll文件,同时Python调用c文件

Python中的ctypes模块可能是Python调用C方法中最简单的一种。ctypes模块提供了和C语言兼容的数据类型和函数来加载dll文件,因此在调用时不需对源文件做任何的修改。也正是如此奠定了这种方法的简单性。

示例如下:实现两数求和的C代码,保存为add.c

#include "stdio.h"
 
__declspec(dllexport) int sum(int a, int b)
{
	return a + b;
}
__declspec(dllexport) float add_float(float num1, float num2){
    return num1 + num2;

}

接下来将C文件编译为.dll文件。

假设我们在Windows上安装了Visual Studio 2017,其安装目录为:C:\Program Files\Microsoft Visual Studio 10.0

那么cl、link所在的目录为:C:\Program Files\Microsoft Visual Studio 10.0\VC\bin

我们可以在Visual Studio Command Prompt (2017)中执行这样的命令来把源代码编译成动态链接库:

cl /c add.c
link /dll add.obj

有图有真相,我们截图如下:(如果要生成32位.dll文件,则选择x86)



现在用你的Python代码中来调用它

import ctypes 

#load the shared object file
adder = ctypes.CDLL('add.dll')

#Find sum of integers
res_int = adder.sum(4,5)
print ("Sum of 4 and 5 = " + str(res_int))

#Find sum of floats
a = ctypes.c_float(5.5)
b = ctypes.c_float(4.1)

add_float = adder.add_float
add_float.restype = ctypes.c_float
print ("Sum of 5.5 and 4.1 = ", str(add_float(a, b)))

输出如下:


至此,大功告成!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值