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

yipeiwu_com7年前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使用百度文字识别功能方法详解

python使用百度文字识别功能方法详解

介绍python使用百度智能去的文字识别功能,可以识别截图中的文,登陆路验证码等等。, 登陆百度智能云,选择产品服务。 选择“人工智能”---文字识别。 点击创建应用。 如图下面有关...

Python常用模块sys,os,time,random功能与用法实例分析

Python常用模块sys,os,time,random功能与用法实例分析

本文实例讲述了Python常用模块sys,os,time,random功能与用法。分享给大家供大家参考,具体如下: sys: 介绍:主要包含涉及python编译器与系统交互的函数。 常用...

python 限制函数执行时间,自己实现timeout的实例

如下所示: # coding=utf-8 import signal import time def set_timeout(num, callback): def wr...

python目录操作之python遍历文件夹后将结果存储为xml

Linux服务器有CentOS、Fedora等,都预先安装了Python,版本从2.4到2.5不等,而Windows类型的服务器也多数安装了Python,因此只要在本机写好一个脚本,上传...

Python实现按特定格式对文件进行读写的方法示例

Python实现按特定格式对文件进行读写的方法示例

本文实例讲述了Python实现按特定格式对文件进行读写的方法。分享给大家供大家参考,具体如下: #! /usr/bin/env python #coding=utf-8 class...