C语言代码配置python调用的pyd文件以及接口模块

一、说明

本文主要为了python调用C的功能接口。C语言编译环境采用Visual Studio 2013,配置生成 pyd文件。 然后再使用 swig工具,自动生成python调用的接口。然后python调用pyd文件和相关接口,进而python调用C语言的功能。

 

二、编写C语言代码

2.1 项目创建

 

 

2.2 代码

 

// 源文件 .c
#include "test.h"

int fun(int a, int b)
{
    printf("a+b=");
    return a + b;
}

// 头文件 .h
int fun(int a, int b);

三、visual studio 配置python环境

 

 

 

 

 

 

 

 

 

四、编写输出 .i 文件

/* test.i */
%module test
%contract  fun(int a, int b){
require:
     a      >= 0;
     b      >= 0;
}
%inline %{
extern int fun(int a, int b);
%}

 接口文件包含 ISO C 函数原型和变量声明。

%module指令定义将由SWIG创建的模块的名称。

%{%}块提供了一个位置,用于将其他代码(如C头文件或其他C声明)插入到生成的C包装器代码中。

五、swig工具生成接口py文件

swig -python C:\Users\50927\Desktop\C_Python\ConsoleApplication1\ConsoleApplication1\test.i

 

 

执行结束之后,会生成一个 ***_wrap.c文件 和一个 封装好的 py文件

六、编译生成pyd文件

将 ***_wrap.c 文件放在 源文件下,开始编译,生成解决方案。
编译完成之后, 在 Release 文件夹下面会出现pyd文件

七、python调用pyd与py文件

# 将 Release 文件夹中的 pyd文件,以及swig生成的 py文件拿出来,编写 python代码,调用 py文件中的函数, py文件中的函数会调用 pyd中的封装的c代码
import test
print test.fun(1, 2)   # a+b=3

 

posted on 2021-04-26 10:56  软饭攻城狮  阅读(1441)  评论(0编辑  收藏  举报

导航