ЭТО НЕ МОЙ ОТВЕТ.
Как я могу использовать файл DLL из Python?
Я думаю, что ctypes — правильный путь.
Следующий пример ctypes взят из реального кода, который я написал (на Python 2.5). Это был, безусловно, самый простой способ сделать то, что вы просите.
import ctypes
# Load DLL into memory.
hllDll = ctypes.WinDLL ("c:\\PComm\\ehlapi32.dll")
# Set up prototype and parameters for the desired function call.
# HLLAPI
hllApiProto = ctypes.WINFUNCTYPE (ctypes.c_int,ctypes.c_void_p,
ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p)
hllApiParams = (1, "p1", 0), (1, "p2", 0), (1, "p3",0), (1, "p4",0),
# Actually map the call ("HLLAPI(...)") to a Python name.
hllApi = hllApiProto (("HLLAPI", hllDll), hllApiParams)
# This is how you can actually call the DLL function.
# Set up the variables and call the Python name with them.
p1 = ctypes.c_int (1)
p2 = ctypes.c_char_p (sessionVar)
p3 = ctypes.c_int (1)
p4 = ctypes.c_int (0)
hllApi (ctypes.byref (p1), p2, ctypes.byref (p3), ctypes.byref (p4))
Материал ctypes содержит все типы данных C-типа (int, char, short, void*,...) и может передаваться по значению или ссылке. Он также может возвращать определенные типы данных, хотя мой пример этого не делает (API HLL возвращает значения, изменяя переменную, переданную по ссылке).
person
Jakob Bowyer
schedule
17.05.2011
zipfile
, позволяющая делать подобные вещи с ZIP-файлами. - person Ben Hoyt   schedule 17.05.2011