我的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