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 Selenium爬取内容并存储至MySQL数据库的实现代码
Mar 16 Python
python简单线程和协程学习心得(分享)
Jun 14 Python
python多行字符串拼接使用小括号的方法
Mar 19 Python
Python、 Pycharm、Django安装详细教程(图文)
Apr 12 Python
将python运行结果保存至本地文件中的示例讲解
Jul 11 Python
Python进程间通信 multiProcessing Queue队列实现详解
Sep 23 Python
Python模块的定义,模块的导入,__name__用法实例分析
Jan 07 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
Feb 03 Python
python实现信号时域统计特征提取代码
Feb 26 Python
Python基于pyjnius库实现访问java类
Jul 31 Python
Python使用pycharm导入pymysql教程
Sep 16 Python
python中threading和queue库实现多线程编程
Feb 06 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获取数组元素中头一个数组元素值的实现方法
2014/12/20 PHP
php数组键值用法实例分析
2015/02/27 PHP
PHP中的表达式简述
2016/05/29 PHP
基于PHP生成简单的验证码
2016/06/01 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
一个js封装的不错的选项卡效果代码
2008/02/15 Javascript
JQuery index()方法使用代码
2010/06/02 Javascript
JS模拟面向对象全解(一、类型及传递)
2011/07/13 Javascript
jQuery EasyUI API 中文文档 - Panel面板
2011/09/30 Javascript
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
一个JavaScript获取元素当前高度的实例
2014/10/29 Javascript
详解Javascript动态操作CSS
2014/12/08 Javascript
js Calender控件使用详解
2015/01/05 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
jquery悬浮提示框完整实例
2016/01/13 Javascript
复杂的javascript窗口分帧解析
2016/02/19 Javascript
JavaScript中instanceof运算符的使用示例
2016/06/08 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
jQuery异步提交表单的两种方式
2016/09/13 Javascript
javascript cookie基础应用之记录用户名的方法
2016/09/20 Javascript
jQuery排序插件tableSorter使用方法
2017/02/10 Javascript
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
[01:21:07]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
[52:07]完美世界DOTA2联赛PWL S3 LBZS vs access 第二场 12.10
2020/12/13 DOTA
Python删除指定目录下过期文件的2个脚本分享
2014/04/10 Python
Python处理PDF及生成多层PDF实例代码
2017/04/24 Python
Python贪心算法实例小结
2018/04/22 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
2020/03/13 Python
PyQt5中向单元格添加控件的方法示例
2020/03/24 Python
Html5跳转到APP指定页面的实现
2020/01/14 HTML / CSS
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
世界排名第一的万圣节服装店:Spirit Halloween
2018/10/16 全球购物
冰淇淋店创业计划书范文
2013/12/27 职场文书
策划总监岗位职责
2014/02/16 职场文书
实用求职信模板范文
2019/05/13 职场文书