gpt4 book ai didi

c++ - 使用重叠结构进行回调?

转载 作者:行者123 更新时间:2023-11-27 23:12:30 26 4
gpt4 key购买 nike

我有自己的重叠结构,用于使用 IO 完成端口的异步 IO。

现在我收到读/写完成的通知。我可以在重叠结构中将 CALLBACK 函数作为参数传递吗?

这将允许我根据我传递的重叠结构的类型指定各种回调函数

有没有人对此有任何好运?

最佳答案

OVERLAPPED创建你自己的结构:

struct MyOverlapped : OVERLAPPED
{
CALLBACK MyCallback;
};

现在改用这个:

MyOverlapped *o=new MyOverlapped;
o->MyCallback=CallbackHandler;

WriteFile(..,..,MyOverlapped);

然后当您得到 OVERLAPPED 时,您可以将其转换为您的派生版本:

MyOverlapped *o=static_cast<MyOverlapped*>(overlapped);

现在您可以访问回调了。我猜您正在从对 GetQueuedCompletionStatus 的调用中取回 OVERLAPPED 实例,您取回的指针实际上指向您的派生结构。

关于c++ - 使用重叠结构进行回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19194047/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com