我在使用DLL文件时遇到问题。我使用的代码如下。在DLL手册中它写了函数的符号。我使用的是Python 2.7
from ctypes import *
mtrs= windll.LoadLibrary("mtrs.dll")
mtrs.sw_Open("SystemWorks", 0, c_ulong( 0x100 | 0x10000), None, None)
0
在DLL的手册中,它编写了函数的签名。
DLLINOUT BOOL WINAPI sw_Open(LPCSTR DeviceName, ULONG DeviceNumber, ULONG OpenFlags, void * Arg1, void * Arg2 );
如果未打开设备,则函数返回false。
参数有错误吗?
答案 0 :(得分:0)
如果您使用的是Python 3x,则应使用b"SystemWorks"
,因为第一个参数的类型为LPCSTR
。
答案 1 :(得分:0)
#!/usr/bin/env python3
from ctypes import *
mtrs= windll.LoadLibrary("mtrs.dll")
mtrs.sw_Open.argtypes = [c_char_p, c_ulong, c_ulong, c_void_p, c_void_p]
mtrs.sw_Open.restype = c_bool
mtrs.sw_Open(b"SystemWorks", c_ulong(0), c_ulong( 0x100 | 0x10000), None, None)