【发布时间】:2018-11-21 00:54:57
【问题描述】:
因此,我的任务是编写一个 Python 脚本,该脚本访问 Win 32 DLL 以执行某些功能。该脚本需要从命令行接受参数,然后输出其他参数。
我正在使用 ctypes,因为它是我发现将参数传递给 Win 32 DLL 方法的最简单方法,但我很幸运能够从命令行获得一个固定的值数组,我通过这样做解决了这个问题:
seed = (ctypes.c_ubyte * 12)(
ctypes.c_ubyte(int(sys.argv[3], 16)), ctypes.c_ubyte(int(sys.argv[4], 16)),
ctypes.c_ubyte(int(sys.argv[5], 16)), ctypes.c_ubyte(int(sys.argv[6], 16)),
ctypes.c_ubyte(int(sys.argv[7], 16)), ctypes.c_ubyte(int(sys.argv[8], 16)),
ctypes.c_ubyte(int(sys.argv[9], 16)), ctypes.c_ubyte(int(sys.argv[10], 16)),
ctypes.c_ubyte(int(sys.argv[11], 16)), ctypes.c_ubyte(int(sys.argv[12], 16)),
ctypes.c_ubyte(int(sys.argv[13], 16)), ctypes.c_ubyte(int(sys.argv[14], 16))
)
但这无论如何都不是动态的,我尝试在数组初始化中使用 for 循环执行此数组初始化,但没有成功。
我对 Python 完全陌生,发现用其他语言完成我认为简单的任务相当困难(不是抨击该语言,只是觉得它不像其他语言那样直观)。
那么,有没有一种方法可以简化这个数组的初始化,因为它本身可能存在可变数量的条目?
我已经搜索和搜索,但没有找到解决我的问题。
所有正面和负面的 cmets 都会受到赞赏,并且两者都将始终作为学习经验 :)
【问题讨论】:
标签: python ctypes python-2.5