Question

J'essaie actuellement de faire une introspection sur une DLL avec Python. Je souhaite créer automatiquement une interface de test graphique basée sur une DLL.

Je peux charger ma DLL en python assez facilement et j'appelle certaines fonctions. Le problème principal est que j'appelle "& dir; dir". sur l'objet sans appeler de méthode, j'ai le résultat

>>> 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']

et lorsque j'appelle manuellement une fonction (comme "Read_Version"), j'ai comme résultat de la fonction 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']

Il semble que l’introspection ne fonctionne que sur la fonction que j’ai déjà appelée et que cela n’est pas vraiment "utile". ;).

Avez-vous une autre idée pour récupérer des fonctions qui se trouvent dans une DLL? (en python bien sûr)

J'utilise python 2.6 sous Windows.

Était-ce utile?

La solution

Pour autant que je sache, il n’ya pas de moyen facile de le faire. Vous devez utiliser un outil externe (par exemple, link / dump / exports ) ou utiliser un analyseur syntaxique PE / DLL (par exemple, pefile ).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top