【发布时间】:2008-09-18 14:40:25
【问题描述】:
当您使用 GetOpenFileName() 使用标准 Windows“文件打开”对话框时,shell 将加载显示文件列表所需的各种 DLL,包括自定义的。
在我的应用程序中,我发现 TortoiseCVS 用于在图标上绘制叠加层的 DLL 正在调用 GdiPlusShutdown(),因此在显示“文件打开”对话框后一段时间,TortoiseCVS DLL 将被卸载,它会关闭关闭 GDI+,我的图形功能都会失败!
我的应用程序可以随时加载任何旧 DLL 并开始对其状态进行随机操作,这似乎很糟糕。在我的情况下,解决方法非常简单——如果我检测到它已被关闭,只需重新启动 GDI+。但是,如果这发生在我无法调试的客户端机器上,那么要弄清楚发生了什么会更具挑战性。
任何人都可以提供任何见解吗?我能做些什么来阻止这种情况发生?
【问题讨论】: