这不是用于生产代码,这是用于单元测试。
我们有一个旧的DLL,它在DLL_PROCESS_DETACH事件上释放资源。在可执行文件的静态销毁阶段,我们遇到了崩溃的情况,因为静态变量的析构函数正试图访问DLL(悬挂引用)未映射的资源。
我想在单元测试中重现此崩溃情况,以便可以证明已修复它。
最佳答案
您可以使用 GetModuleHandle(LPCTSTR lpModuleName)
来获取模块的句柄,并将其传递给 FreeLibrary()
。GetModuleHandle()
的文档指出:
尽管警告不要这样做,但这听起来似乎正是您要执行的操作。在您的方案中,这应该相当容易测试,以验证它是否满足您的要求。