CDocument :: SetPathName ведет себя по-разному в WinXp и Windows 7 - PullRequest
1 голос
/ 27 мая 2011

Когда я вызывал CDocument::SetPathName с 'eererr.hpr' в Windows XP, он обновляет переменную-член m_strPathName со значением 'C:\Program Files\ICEHost\Projects\eererr.hpr'

Когда я выполнял тот же метод в Windows 7, он обновлялся m_strPathName с каталогом 'C:\Program Files\ICEHost\eererr.hpr' Projects по этому пути отсутствует

В чем причина такой разницы в WinXp и Windows 7?На основании какой информации CDocument::SetPathName обновляет m_strPathName?Как можно сделать поведение таким же?

Ответы [ 2 ]

2 голосов
/ 27 мая 2011

SetPathName() вызывает GetFullPathName(), которая "объединяет имя текущего диска и каталог с указанным именем файла". Таким образом, разница, вероятно, в том, как получить текущий каталог.

Документировано, как CFileDialog выбирает другой начальный каталог в другой ОС (отметьте lpstrInitialDir в следующем ссылка ). Может быть, это связано с этим.

1 голос
/ 01 июня 2011

Возможно, вам придется переопределить функцию AddToRecentFileList. Метод Add теперь реализован по-другому с Win7. Проверьте эту ссылку

http://social.msdn.microsoft.com/Forums/en-NZ/vcgeneral/thread/3fcb5f77-3c62-4d62-b01c-89a121ea835f

...