【转载】
python
调用
dll
方法
python
调用
dll
方法
来自
http://blog.csdn.net/lf8289/article/details/2322550
分类:
python 2008-04-24 12:27 6833
人阅读
评论
(6)
收藏
举报
在
python
中调用
dll
文件中的接口比较简单,实例代码如下:
如我们有一个
test.dll
文件,内部定义如下:
extern
" C "
{
int
__stdcall test(
void *
p,
int
len)
{
return
len;
}
}
在
python
中我们可以用以下两种方式载入
1 .
import
ctypes
dll
=
ctypes.windll.LoadLibrary(
' test.dll '
)
2 .
import
ctypes
dll
=
ctypes.WinDll(
' test.dll '
)
其中
ctypes.windll
为
ctypes.WinDll
类的一个对象,
已经在
ctypes
模块中定义好的。
在
test.dll
中有
test
接口,可直接用
dll
调用即可
nRst
=
dll.test( )
nRst
由于在
test
这个接口中需要传递两个参数,一个是
void
类型的指针,它指向一个缓冲区。
一个是该缓冲区的长度。因此我们要获取到
python
中的字符串的指针和长度
#
方法一:
sBuf
=
' aaaaaaaaaabbbbbbbbbbbbbb '
pStr
=
ctypes.c_char_p( )
pStr.value
=
sBuf
pV
oid
=
ctypes.cast( pStr, ctypes.c_void_p ).value
nRst
=
dll.test( pV
oid, len( pStr.value) )
#
方法二:
test
= dll.test