Я сталкивался с этой проблемой раньше.
Любой объект, которому требуется концепция текущего каталога для поддержки относительных путей или поиска (например, инструмент сборки), имеет свойство члена, которое он поддерживает со своим «текущим» путем, а затем создает полный путь для открытия / создания / поиска. .
Начальное значение для CurrentPath можно получить один раз во время фазы загрузки приложения, например, main (), WinMain (), DllInit () и т. д. через GetCurrentDirectory и хранятся в глобальном. После этого версия Win32 игнорируется.
Структура OPENFILENAME имеет начальный элемент каталога, поэтому диалоги открытия / сохранения файлов не должны использовать текущий каталог Win32.