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将多个文本文件合并为一个文本的代码(便于搜索)
Mar 13 Python
python通过wxPython打开一个音频文件并播放的方法
Mar 25 Python
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
May 09 Python
浅谈Python浅拷贝、深拷贝及引用机制
Dec 15 Python
Python脚本完成post接口测试的实例
Dec 17 Python
Django学习笔记之为Model添加Action
Apr 30 Python
在Python中COM口的调用方法
Jul 03 Python
python 根据字典的键值进行排序的方法
Jul 24 Python
Python的形参和实参使用方式
Dec 24 Python
Python基于内置库pytesseract实现图片验证码识别功能
Feb 24 Python
Python numpy大矩阵运算内存不足如何解决
Nov 19 Python
pycharm进入时每次都是insert模式的解决方式
Feb 05 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 中的4种标记风格介绍
2012/05/10 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
2016/06/13 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
laravel 中某一字段自增、自减的例子
2019/10/11 PHP
求得div 下 img的src地址的js代码
2007/02/28 Javascript
用js脚本控制asp.net下treeview的NodeCheck的实现代码
2010/03/02 Javascript
设置checkbox为只读(readOnly)的两种方式
2013/10/11 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
2015/10/01 Javascript
vue.js中指令Directives详解
2017/03/20 Javascript
vue2.0在table中实现全选和反选的示例代码
2017/11/04 Javascript
Vue.js用法详解
2017/11/13 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
React精髓!一篇全概括小结(急速)
2019/05/23 Javascript
Vue动态面包屑功能的实现方法
2019/07/01 Javascript
Element的el-tree控件后台数据结构的生成以及方法的抽取
2020/03/05 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
2020/03/10 Javascript
Nodejs 微信小程序消息推送的实现
2021/01/20 NodeJs
Python类的动态修改的实例方法
2017/03/24 Python
python实现矩阵打印
2019/03/02 Python
python 函数的缺省参数使用注意事项分析
2019/09/17 Python
Python 日期的转换及计算的具体使用详解
2020/01/16 Python
python设置表格边框的具体方法
2020/07/17 Python
基于python实现MQTT发布订阅过程原理解析
2020/07/27 Python
python 代码运行时间获取方式详解
2020/09/18 Python
Html5元素及基本语法详解
2016/08/02 HTML / CSS
Saks Fifth Avenue澳洲/亚太地区:萨克斯第五大道精品百货店
2019/06/09 全球购物
医科大学生毕业的自我评价分享
2013/11/12 职场文书
总经理的岗位职责
2014/02/23 职场文书
民生工程实施方案
2014/03/22 职场文书
大学新生军训方案
2014/05/03 职场文书
村级环境卫生整治方案
2014/05/04 职场文书
爱我中华演讲稿
2014/05/20 职场文书
医德医魂心得体会
2014/09/11 职场文书
2015年保险公司工作总结
2015/04/24 职场文书
学校财务管理制度
2015/08/04 职场文书
pytorch常用数据类型所占字节数对照表一览
2021/05/17 Python