При использовании стандартного диалогового окна Windows «Открытие файла» с использованием GetOpenFileName () оболочка загружает различные библиотеки DLL, необходимые для отображения списка файлов, включая пользовательские.
В моем приложении я обнаружил, что библиотека DLL, которую TortoiseCVS использует для рисования оверлеев на значках, вызывает GdiPlusShutdown (), и поэтому через некоторое время после отображения диалогового окна «открытие файла» библиотека TortoiseCVS будет выгружена, она закроется вниз GDI + и все мои графические функции потерпят неудачу!
Кажется, довольно плохо, что в принципе любое старое DLL может быть загружено моим приложением в любое время и начать делать случайные вещи в своем состоянии. Обходной путь в моем случае был довольно прост - просто перезапустите GDI +, если я обнаружу, что он выключен. Однако если бы это произошло на компьютере клиента, где я не смог его отладить, было бы намного сложнее выяснить, что происходит.
Кто-нибудь может предложить какое-нибудь понимание? Что я мог сделать, чтобы это не произошло?