asynchronous完成例程I / O,封装在类中的例程指针

我想知道是否有使用像ReadFileEx这样的函数,需要指向一个类中的函数的指针,而不用将该函数标记为静态? 提前致谢。 SBP。

不,非静态类函数有一个隐含的第一个参数(this),它与它们作为ReadFileEx的回调函数不兼容。

您始终可以扩展您传递的OVERLAPPED结构,以包含指向您的对象的指针。 然后,传递一个调用该对象成员函数的函数。 有点像这样:

 typedef struct _MYOVERLAPPED { OVERLAPPED ol; MyObject *obj; } MYOVERLAPPED, *LPMYOVERLAPPED; void ReadCompleted(DWORD err, DWORD read, LPMYOVERLAPPED overlap) { overlap->obj->foo(); } 

对不起,如果在上面的代码中有一些轻微的语法错误,这是一段时间,因为我实际上写了一些C ++ …