这不是用于生产代码,这是用于单元测试。

我们有一个旧的DLL,它在DLL_PROCESS_DETACH事件上释放资源。在可执行文件的静态销毁阶段,我们遇到了崩溃的情况,因为静态变量的析构函数正试图访问DLL(悬挂引用)未映射的资源。

我想在单元测试中重现此崩溃情况,以便可以证明已修复它。

最佳答案

您可以使用 GetModuleHandle(LPCTSTR lpModuleName) 来获取模块的句柄,并将其传递给 FreeLibrary()
GetModuleHandle()的文档指出:



尽管警告不要这样做,但这听起来似乎正是您要执行的操作。在您的方案中,这应该相当容易测试,以验证它是否满足您的要求。

07-23 04:03