BOOL GetQueuedCompletionStatus(
HANDLE CompletionPort, // 完成端口句柄
LPDWORD lpNumberOfBytes, // 传送数据字节数
PULONG_PTR lpCompletionKey, // 完成键
LPOVERLAPPED * lpOverlapped, // 重叠结构体
DWORD dwMilliseconds // 超时毫秒数
);
函数GetQueuedCompletionStatus返回的lpCompletionKey是一个4字节的地址,但64位编译器下指针是8字节,导致返回的地址是被截断的,从而导致指针错误,有没有遇到类似问题的,该如何解决?
谁告诉你是4字节地址的呢,他是一个指针,也是一个地址,而指针在32位下就是4字节,在64位下就是8字节,怎么会被截断呢,同一个程序编译成32位或者64位,一般情况下功能都是相同的
遇到同样的问题 ,我将PostQueuedCompletionStatus的参数也改成了ULONG,结果发现还是异常,按理来说,发与收都 改成了ULONG应该 是可以了,试了N多遍还是不能解决;