python pywintypes.OVERLAPPED().Offset抛出溢出

2024-09-27 01:28:49 发布

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

我有一个重叠的对象,如:

overlapped = pywintypes.OVERLAPPED()
overlapped.hEvent = win32event.CreateEvent(None, 0, 0, None)

然后我在循环中读它,就像:

ret, p = win32file.ReadFile(somefile, buffer, overlapped)
win32event.WaitForSingleObject(self.overlapped.hEvent, win32event.INFINITE)
overlapped.Offset = overlapped.Offset + len(p)

一段时间后,它抛出OverflowerError:python int太大,无法转换为C long。我知道这是因为文件太大,超出了偏移量,偏移量最多只能容纳2147483647。所以我们要避免这种情况吗


Tags: 对象nonebuffersomefileoffset偏移量retwin32event
1条回答
网友
1楼 · 发布于 2024-09-27 01:28:49

使用您自己的offset变量来存储偏移量。设置结构时,必须在两个变量之间拆分

基本上:

overlapped.Offset = offset & 0xffffffff
overlapped.OffsetHigh = offset >> 32

相关问题 更多 >

    热门问题