我的dll具有异步函数,它启动一个线程并立即返回。它接受事件对象的句柄(类型HANDLE
),线程在完成时发出信号。这工作正常,但我怎么能返回它传递的函数的结果,并没有发生错误?一个简单的布尔类型会做。如何在dll中从异步函数返回值
我正在考虑使用GetLastError()类型的调用来获取最后一个函数的结果,但我并不是真的以这种方式销售。我也看着std :: future和std :: async,但我不确定我是否可以在dll函数中使用它!?我想过的另一种选择是使用GetOverlappedResult
,但通常用于文件I/O,我不知道我是否可以将它用于我编写的自定义函数。
看看['性病安全,轻松地::未来'](http://en.cppreference.com/w/cpp/thread/future) – melak47
如果线程接受一个arg(HANDLE),它可以接受一个指向mableced结构的指针(用HANDLE,a nd布尔,和一些字符[42]为一个小错误消息)。当事件发信号时,主叫方只应该释放。 – manuell
你可以将回调传递给“你的”DLL函数吗? – Chad