带有常量指针参数的Python ctypes访问冲突

2024-10-03 11:25:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个API,我正试图用python(Win7上的2.7.6)代码,使用ctypes完成。以下是API:

CLIENT_DLLFUNC bool CLIENTAPI search_exportToClipCopy(CLIENTHSEARCH handle, int channel, LPCTSTR fileName, const time_t& from, const time_t& to, const bool* cameras, int length, bool usePassword, LPCTSTR password, bool includeTextIn = false, bool excludePlayer = false);

我遇到的问题是cameras参数;其他const指针参数也有这个问题。下面是我如何包装此API:

^{pr2}$

除非我遗漏了什么,否则我现在应该能够用上述类型的参数调用这个python函数,然后我将调用API。但事实并非如此:

cam_ptr = pointer(c_bool())
search_exportToClipCopy(hSearch, cSearch, 'dltest.exe', 1399387862, 1399388162, (cam_ptr), 32, False, '', True, False)

结果是:

exception: access violation reading 0x5368F802

这是我尝试过的一种方法。我用来自同一客户机的另一个API做了完全相同的事情(尽管是一个不同的dll),其中的参数是一个非常数bool指针,一切都很好。我做错什么了?在


Tags: apifalsesearch参数timeintboolcam