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 获取新浪微博的最新公共微博实例分享
Jul 03 Python
Python实现简单的文件传输与MySQL备份的脚本分享
Jan 03 Python
Python实现购物车程序
Apr 16 Python
对python添加模块路径的三种方法总结
Oct 16 Python
使用python将请求的requests headers参数格式化方法
Jan 02 Python
python装饰器简介---这一篇也许就够了(推荐)
Apr 01 Python
用Python画小女孩放风筝的示例
Nov 23 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
Mar 12 Python
解决Jupyter NoteBook输出的图表太小看不清问题
Apr 16 Python
Python常用库Numpy进行矩阵运算详解
Jul 21 Python
python基于opencv批量生成验证码的示例
Apr 28 Python
Python装饰器详细介绍
Mar 25 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
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
2007/09/02 PHP
php 魔术方法使用说明
2009/10/20 PHP
解析php中如何直接执行SHELL
2013/06/28 PHP
php中simplexml_load_file函数用法实例
2014/11/12 PHP
php短址转换实现方法
2015/02/25 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
php文件包含的几种方式总结
2019/09/19 PHP
javascript下arguments,caller,callee,call,apply示例及理解
2009/12/24 Javascript
jquery 通过name快速取值示例
2014/01/24 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
2014/10/17 Javascript
JQuery实现动态添加删除评论的方法
2015/05/18 Javascript
javascript实现行拖动的方法
2015/05/27 Javascript
jQuery中的Deferred和promise 的区别
2016/04/03 Javascript
详解vue-cli + webpack 多页面实例应用
2017/04/25 Javascript
Vue中v-show添加表达式的问题(判断是否显示)
2018/03/26 Javascript
vue 中动态绑定class 和 style的方法代码详解
2018/06/01 Javascript
JavaScript闭包原理与用法实例分析
2018/08/10 Javascript
在layui下对元素进行事件绑定的实例
2019/09/06 Javascript
[14:25]教你分分钟做大人:主宰(HEROS)
2014/12/08 DOTA
python中requests爬去网页内容出现乱码问题解决方法介绍
2017/10/25 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
python3+PyQt5使用数据库表视图
2018/04/24 Python
Python 比较文本相似性的方法(difflib,Levenshtein)
2018/10/15 Python
python3.4爬虫demo
2019/01/22 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
2020/03/03 Python
美国山地自行车、露营、户外装备和服装购物网站:Aventuron
2018/05/05 全球购物
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
C#笔试题和英文面试题
2013/02/07 面试题
女大学生个人求职信
2013/12/09 职场文书
护士实习鉴定范文
2013/12/22 职场文书
婚前协议书范本
2014/10/27 职场文书
2014年酒店前台工作总结
2014/11/14 职场文书
预备党员党支部意见
2015/06/02 职场文书
PHP使用非对称加密算法RSA
2021/04/21 PHP
SQL Server使用导出向导功能
2022/04/08 SQL Server
Python实现仓库管理系统
2022/05/30 Python