windows7系统python调用c语言详细步骤

环境:VS2017 社区版, windows7 64位系统

一、检测c语言代码是否正常

打开vs2017,新建工程,新建源文件,测试代码正常如下:

#include

int add(int num1, int num2);

void main()
{
    int a = 2;
    int b = 3;
    int c = 0;
    c = add(a, b);
    printf("%d", c);
    getchar();
}


int add(int num1, int num2)
{
    return num1 + num2;
}

通过调试运行,发现代码无错误。如果认为c语言代码无问题,这一步可有可无。生成dll文件时,不需要主函数。

 

二、生成dll文件

2.1新建动态链接库工程,如下图一。确定之后,自动生成dll导出文件,如下图二。

windows7系统python调用c语言详细步骤_第1张图片

                                                                                      图一

windows7系统python调用c语言详细步骤_第2张图片

                                                                                           图二

2.2 新建头文件及源文件

在头文件目录下添加新建项如下图三;在源文件目录下添加新建项如图四。代码块分别在所对应图示下面。

windows7系统python调用c语言详细步骤_第3张图片

                                                                                       图三

#include

int add(int num1, int num2);

windows7系统python调用c语言详细步骤_第4张图片

#include "stdafx.h"

int add(int num1, int num2)
{
    return num1 + num2;
}

 

2.3新建模块定义文件

在源文件处添加新建项,选择模块定义文件,如图五。

代码块说明:test.dll 为其对应的工程名, add 为函数名。此代码块是为了让生成的dll文件能找到该函数。

windows7系统python调用c语言详细步骤_第5张图片

LIBRARY "test.dll"
EXPORTS
add

 

 

2.4生成dll文件

生成之前,如果系统是64位系统,需要选择x64,否则python调用时会报错。32位系统选择对应的x86即可。

点击生成,选择生成解决方案,成功之后,生成dll所在位置下面有提示。调用即可。

windows7系统python调用c语言详细步骤_第6张图片

三、python调用dll文件

如下图,通过python的ctypes模块调用对应的add函数。

from ctypes import cdll

a = cdll.LoadLibrary(r'dll所在路径')
print(a.add(3, 6)) #输出值为9

windows7系统python调用c语言详细步骤_第7张图片

四、其他

ubuntu生成.so文件,只需要用gcc命令将cpp文件直接就可以生成.so文件。

vs2013生成dll文件与该方法稍有不同,但代码块都是一样的。

你可能感兴趣的:(python,C,Ctypes,dll)