#c #windows-7 #mfc #windows-xp
#c #windows-7 #mfc #windows-xp
Вопрос:
Когда я вызывал CDocument::SetPathName
с помощью ‘eererr.hpr’ в Windows XP, он обновляет переменную-член со значением m_strPathName
'C:Program FilesICEHostProjectseererr.hpr'
Когда я выполнил тот же метод в Windows 7, он обновился m_strPathName
с 'C:Program FilesICEHosteererr.hpr'
Projects
отсутствием каталога в этом пути
В чем причина такой разницы в WinXP и Windows 7? На основе какой информации выполняются CDocument::SetPathName
обновления m_strPathName
? Как можно добиться одинакового поведения?
Комментарии:
1. Наличие документа внутри
C:Program Files
является плохим знаком и вызовет проблемы в Windows 7. Пожалуйста, сначала исправьте это, а затем проверьте, не остается ли проблема при сохранении ваших документов вMy Documents
.2. @MSalters: У меня такая же проблема, когда я пытался сохранить ‘C:ICE Папка Products ICeHost’
Ответ №1:
SetPathName()
вызывает GetFullPathName()
, который «объединяет имя текущего диска и каталога с указанным именем файла». Таким образом, разница, вероятно, заключается в том, как получается текущий каталог.
Задокументировано, как CFileDialog выбирает другой исходный каталог в разных ОС (проверьте lpstrInitialDir
по следующей ссылке). Возможно, это связано с этим.
Ответ №2:
Возможно, вам потребуется переопределить функцию AddToRecentFileList. Метод Add теперь реализован по-другому в Win7. Проверьте эту ссылку
http://social.msdn.microsoft.com/Forums/en-NZ/vcgeneral/thread/3fcb5f77-3c62-4d62-b01c-89a121ea835f