我们有一个使用 C++11 在 Visual Studio 中构建的 DLL。此时我们的 DLL 有一个固定的 API,它包括一个open
andclose
函数(以及其他)。我们允许我们的用户在不关闭应用程序的情况open
下close
多次使用。在我们的 DLL 中,我们使用了一个第三方库,它不仅有一个open
and close
,还有一个initialize
and uninitialize
。
open
andclose
映射到我们的and open
,close
但initialize
anduninitialize
每次只能调用一次,在启动和关闭时。我initialize
只能从我们的函数中调用它们一次open
,但我找不到调用的地方uninitialize
,因为我不知道应用程序何时将关闭。调用它的最合乎逻辑的地方是DllMain
在DLL_PROCESS_DETACH
. 如果我只是放弃并删除他们的uninitialize
电话,我仍然会得到一个未处理的异常,并且在任何情况下我都不会干净地关闭。
有没有办法获得应用程序在之前关闭的信号/通知DLL_PROCESS_DETACH
?