Python天天美味(29) - 调用VC++的动态链接库(DLL)

简介:

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);

// +  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 )
=  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 天天美味(27) - 网络编程起步(Socket发送消息)  

Python 天天美味(28) - urlopen    

Python 天天美味(29) - 调用VC++的动态链接库(DLL) 

Python 天天美味(30) - python数据结构与算法之快速排序 

Python 天天美味(31) - python数据结构与算法之插入排序 

...



本文转自CoderZh博客园博客,原文链接:http://www.cnblogs.com/coderzh/archive/2008/07/23/1249919.html,如需转载请自行联系原作者

目录
相关文章
|
6天前
|
机器学习/深度学习 存储 数据挖掘
Python图像处理实用指南:PIL库的多样化应用
本文介绍Python中PIL库在图像处理中的多样化应用,涵盖裁剪、调整大小、旋转、模糊、锐化、亮度和对比度调整、翻转、压缩及添加滤镜等操作。通过具体代码示例,展示如何轻松实现这些功能,帮助读者掌握高效图像处理技术,适用于图片美化、数据分析及机器学习等领域。
48 20
|
1月前
|
XML JSON 数据库
Python的标准库
Python的标准库
172 77
|
1月前
|
XML JSON 数据库
Python的标准库
Python的标准库
52 11
|
1月前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
76 8
|
1月前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
45 4
|
Python
C调用Python崩溃的记录
C调用Python崩溃的记录
162 0
|
Python
C调用Python崩溃的记录
C调用Python崩溃的记录
142 0
|
1月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
1月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
30天前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
112 80