Вопрос

В настоящее время я пытаюсь сделать некоторый самоанализ библиотеки DLL с python. Я хочу автоматически создать графический интерфейс тестирования на основе DLL.

Я могу загрузить свою DLL в python довольно легко, и я вызываю некоторые функции. Основная проблема в том, если я назову «dir» на объекте без вызова какого-либо метода, я получил в результате

>>> dir(myLib)
['_FuncPtr', '__class__', '__delattr__', '__dict__', '__doc__',
'__format__', '__getattr__', '__getattribute__', '__getitem__', '__hash__', '__i
nit__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__s
etattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_func_fl
ags_', '_func_restype_', '_handle', '_name']

и когда я вызываю вручную функцию (например, " Read_Version "), я получаю в результате функцию dir

>>> dir(myLib)
['Read_Version', '_FuncPtr', '__class__', '__delattr__', '__dict__', '__doc__',
'__format__', '__getattr__', '__getattribute__', '__getitem__', '__hash__', '__i
nit__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__s
etattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_func_fl
ags_', '_func_restype_', '_handle', '_name']

Кажется, что самоанализ работает только с функцией, которую я уже вызвал, и это не совсем "полезно" ;.)

У вас есть другая идея, чтобы выбрать функции, которые находятся в DLL? (в питоне конечно)

Я использую Python 2.6 под Windows.

Это было полезно?

Решение

Насколько я знаю, не существует простого способа сделать это. Вы должны использовать какой-нибудь внешний инструмент (например, link / dump / exports ) или использовать синтаксический анализатор PE / DLL (например, pefile ).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top