C++ CDocument::SetPathName在WinXp和Windows 7中的行为不同

C++ CDocument::SetPathName在WinXp和Windows 7中的行为不同,c++,windows-7,mfc,windows-xp,C++,Windows 7,Mfc,Windows Xp,当我在Windows XP中用'eeerr.hpr'调用CDocument::SetPathName时,它用值'C:\Program Files\ICEHost\Project\eeerr.hpr'更新成员变量m\u strPathName 当我在Windows 7中执行相同的方法时,它更新了m\u strPathName,其中'C:\Program Files\ICEHost\eeerrr.hpr'Projects目录在此路径中缺失 WinXp和Windows 7中出现这种差异的原因是什么?

当我在Windows XP中用'eeerr.hpr'调用
CDocument::SetPathName
时,它用值
'C:\Program Files\ICEHost\Project\eeerr.hpr'更新成员变量
m\u strPathName

当我在Windows 7中执行相同的方法时,它更新了
m\u strPathName
,其中
'C:\Program Files\ICEHost\eeerrr.hpr'
Projects
目录在此路径中缺失

WinXp和Windows 7中出现这种差异的原因是什么? 基于什么信息,
CDocument::SetPathName
更新
m_strPathName
? 如何使行为相同?

SetPathName()
调用
GetFullPathName()
,它“将当前驱动器和目录的名称与指定的文件名合并”。因此,区别可能在于如何获取当前目录

它记录了CFileDialog如何在不同的操作系统上选择不同的初始目录(在下面的部分中选中
lpstrInitialDir

).也许这与此有关

您可能需要重写AddToRecentFileList函数。Add方法现在在Win7中以不同的方式实现。查看此链接


C:\Program Files\
中有一个文档是一个坏兆头,会导致Windows 7出现问题。请先解决此问题,然后检查将文档保存到
我的文档中时是否仍然存在问题
@MSalters:我在尝试保存“C:\ICE Products\ICEWHost”文件夹时遇到了相同的问题