Python 调用VC++的动态链接库(DLL)


Posted in Python onSeptember 06, 2008

1. 首先VC++的DLL的导出函数定义成标准C的导出函数:

#ifdef LRDLLTEST_EXPORTS 
#define LRDLLTEST_API __declspec(dllexport) 
#else 
#define LRDLLTEST_API __declspec(dllimport) 
#endif extern "C" LRDLLTEST_API int Sum(int a , int b); 
extern "C" LRDLLTEST_API void GetString(char* pChar); 
//a + b 
LRDLLTEST_API int Sum(int a , int b) 
{ 
return a + b; 
} 
//Get a string 
LRDLLTEST_API void GetString(char* pChar) 
{ 
strcpy(pChar, "Hello DLL"); 
}

2. Python中调用如下:

from ctypes import * fileName="LRDllTest.dll" 
func=cdll.LoadLibrary(fileName) 
str = create_string_buffer(20) 
n = func.Sum(2, 3) 
func.GetString(str) 
print n 
print str.raw

关于C语言中的一些参数类型详见:http://www.python.org/doc/2.5/lib/node454.html

3. 输出结果:
5
Hello DLL

Python 相关文章推荐
python代码检查工具pylint 让你的python更规范
Sep 05 Python
Python3.x和Python2.x的区别介绍
Feb 12 Python
Python编程之变量赋值操作实例分析
Jul 24 Python
人工智能最火编程语言 Python大战Java!
Nov 13 Python
python 获取图片分辨率的方法
Jan 08 Python
python 中xpath爬虫实例详解
Aug 26 Python
python序列化与数据持久化实例详解
Dec 20 Python
python3 Scrapy爬虫框架ip代理配置的方法
Jan 17 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
Feb 12 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
Jun 14 Python
python中判断文件结束符的具体方法
Aug 04 Python
Python2.6版本pip安装步骤解析
Aug 17 Python
Python urlopen 使用小示例
Sep 06 #Python
Python 网络编程起步(Socket发送消息)
Sep 06 #Python
Python  __getattr__与__setattr__使用方法
Sep 06 #Python
Python 深入理解yield
Sep 06 #Python
Python 初始化多维数组代码
Sep 06 #Python
Python enumerate遍历数组示例应用
Sep 06 #Python
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
Sep 06 #Python
You might like
一个简单的php实现的MySQL数据浏览器
2007/03/11 PHP
深入php list()函数的详解
2013/06/05 PHP
Apache实现Web Server负载均衡详解(不考虑Session版)
2013/07/05 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
2013/08/31 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
2014/06/08 PHP
PHP list() 将数组中的值赋给变量的简单实例
2016/06/13 PHP
php简单实现文件或图片强制下载的方法
2016/12/06 PHP
PHP与以太坊交互详解
2018/08/24 PHP
PHP7创建销毁session的实例方法
2020/02/03 PHP
JavaScript的parseInt 进制问题
2009/05/07 Javascript
jQuery滚动加载图片效果的实现
2013/03/06 Javascript
利用JS判断用户是否上网(连接网络)
2013/12/23 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
JS实现仿QQ聊天窗口抖动特效
2015/05/10 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
vue快捷键与基础指令详解
2017/06/01 Javascript
利用vscode调试编译后的js代码详解
2018/05/14 Javascript
详解Vue源码之数据的代理访问
2018/12/11 Javascript
[01:03:38]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS CIS
2014/05/22 DOTA
利用Python如何批量修改数据库执行Sql文件
2018/07/29 Python
python射线法判断检测点是否位于区域外接矩形内
2019/06/28 Python
利用Python实现手机短信监控通知的方法
2019/07/22 Python
解决Mac下使用python的坑
2019/08/13 Python
python使用yield压平嵌套字典的超简单方法
2019/11/02 Python
Python模块的定义,模块的导入,__name__用法实例分析
2020/01/07 Python
python操作yaml说明
2020/04/08 Python
Linux开机引导的步骤是什么
2014/02/26 面试题
邮政员工辞职信
2014/01/16 职场文书
同学聚会老师邀请函
2014/01/28 职场文书
群众路线剖析材料
2014/02/02 职场文书
竞选劳动委员演讲稿
2014/04/28 职场文书
法人身份证明书
2014/10/08 职场文书
2015年团支书工作总结
2015/04/03 职场文书
运动会广播稿100字
2015/08/19 职场文书
python编程项目中线上问题排查与解决
2021/11/01 Python
如何利用React实现图片识别App
2022/02/18 Javascript