您的位置:首页 > 编程语言 > C语言/C++

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

2008-09-06 00:00 1061 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: