您好,欢迎访问一九零五行业门户网

Python 调用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);
//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
其它类似信息

推荐信息