【发布时间】:2009-05-06 16:58:05
【问题描述】:
当我在 Windows Vista 中编写一个关于 IO 完成端口的程序时, 第一个示例不起作用,GetQueuedCompletionStatus() 无法获取 任何重叠的结构。
所以我将 OVERLAPPED 结构放在全局范围内,它的效果非常好。 这是为什么呢?
代码1:
int main()
{
OVERLAPPED o;
..
CreateIoCompletionPort(....);
for (int i = 0; i<10; i++)
{
WriteFile(..,&o);
OVERLAPPED* po;
GetQueuedCompletionStatus(..,&po);
}
}
代码2:
OVERLAPPED o;
int main()
{
..
CreateIoCompletionPort(....);
for (int i = 0; i<10; i++)
{
WriteFile(..,&o);
OVERLAPPED* po;
GetQueuedCompletionStatus(..,&po);
}
}
【问题讨论】:
-
编辑了我的帖子。您可能想再看一遍。
标签: c++ windows visual-c++ iocp