我目前正在尝试使用 python 对 DLL 进行一些自省。我想自动创建一个基于 DLL 的图形测试界面。
我可以很容易地在 python 中加载我的 DLL 并调用一些函数。主要问题是如果我在对象上调用“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 中)
我在 Windows 下使用 python 2.6。