最近想把一组api做成一个界面,来控制流程。
问题1:使用IDLE中,直接执行程序报错
Traceback (most recent call last):
File "E:\study\python\client.py", line 143, in <module>
gtpdll = CDLL("test.dll")
File "D:\Python33\lib\ctypes\__init__.py", line 353, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] 找不到指定的模块。
后来捣鼓了好久,才知道是缺少依赖的库。
在一次无意中发现,执行的py文件的时候,使用cmd模式,python *.py,会弹出缺少的依赖库名。
问题2:链表结构,就是struct里面有类型为struct的类型。在python中,可以按以下方式初始化
class TEST_LIST(Structure):
pass
TEST_LIST._fields_= [('prev',POINTER(TEST_LIST)),('next',POINTER(TEST_LIST)),('srcfilename',c_char*256),('destfilename',c_char*256)]
问题3:指向指针的指针
在实现的过程中,发现若函数参数为指向指针指针,若使用双层pointer表示,就会有问题,后来使用的是
list = TEST_LIST()
list_p = pointer(list)
然后传参时使用pointer(list_p)
问题4:数组初始化
destfile = (c_char*256)()
destfile.value = b'result.txt'
需要注意的是,若C代码中涉及strcmp,那么c_char*256,就需要改成len(destfile.value)