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

yipeiwu_com6年前Python基础
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脚本修改阿里云的访问控制列表的方法

需求 对于部署在阿里云上的重要系统一般是不让其他人访问的,所以会在负载均衡(SLB)上加上访问控制列表。而使用ASDL拨号上网的宽带来说一般公网IP都不会固定的,会随时变更公网IP,所...

Python设计模式之桥接模式原理与用法实例分析

Python设计模式之桥接模式原理与用法实例分析

本文实例讲述了Python设计模式之桥接模式原理与用法。分享给大家供大家参考,具体如下: 桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化....

python统计字符串中指定字符出现次数的方法

本文实例讲述了python统计字符串中指定字符出现次数的方法。分享给大家供大家参考。具体如下: python统计字符串中指定字符出现的次数,例如想统计字符串中空格的数量 s = "C...

TensorFlow实现简单的CNN的方法

TensorFlow实现简单的CNN的方法

这里,我们将采用Tensor Flow内建函数实现简单的CNN,并用MNIST数据集进行测试 第1步:加载相应的库并创建计算图会话 import numpy as np import...

Python 处理图片像素点的实例

Python 处理图片像素点的实例

###在做爬虫的时候有时需要识别验证码,但是验证码一般都有干扰物,这时需要对验证码进行预处理,效果如下: from PIL import Image import itertool...