博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
windows7系统python调用c语言详细步骤
阅读量:4149 次
发布时间:2019-05-25

本文共 1017 字,大约阅读时间需要 3 分钟。

环境: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导出文件,如下图二。

                                                                                      图一

                                                                                           图二

2.2 新建头文件及源文件

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

                                                                                       图三

#include
int add(int num1, int num2);

#include "stdafx.h"int add(int num1, int num2){    return num1 + num2;}

 

2.3新建模块定义文件

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

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

LIBRARY "test.dll"EXPORTSadd

 

 

2.4生成dll文件

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

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

三、python调用dll文件

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

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

四、其他

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

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

转载地址:http://omsti.baihongyu.com/

你可能感兴趣的文章
求二叉树中结点的最大值(所有结点的值都是正整数)
查看>>
用go的flag包来解析命令行参数
查看>>
来玩下go的http get
查看>>
队列和栈的本质区别
查看>>
matlab中inline的用法
查看>>
如何用matlab求函数的最值?
查看>>
Git从入门到放弃
查看>>
java8采用stream对集合的常用操作
查看>>
EasySwift/YXJOnePixelLine 极其方便的画出真正的一个像素的线
查看>>
Ubuntu系统上安装Nginx服务器的简单方法
查看>>
Ubuntu Linux系统下apt-get命令详解
查看>>
ubuntu 16.04 下重置 MySQL 5.7 的密码(忘记密码)
查看>>
Ubuntu Navicat for MySQL安装以及破解方案
查看>>
HTTPS那些事 用java实现HTTPS工作原理
查看>>
oracle函数trunc的使用
查看>>
MySQL 存储过程或者函数中传参数实现where id in(1,2,3,...)IN条件拼接
查看>>
java反编译
查看>>
Class.forName( )你搞懂了吗?——转
查看>>
jarFile
查看>>
EJB3.0定时发送jms(发布/定阅)方式
查看>>