CDocument :: SetPathName在WinXp和Windows 7中的行为有所不同

时间:2011-05-27 11:25:06

标签: c++ windows-7 mfc windows-xp

当我在Windows XP中使用'eererr.hpr'调用CDocument::SetPathName时,它会更新成员变量m_strPathName,其值为'C:\Program Files\ICEHost\Projects\eererr.hpr'

当我在Windows 7中执行相同的方法时,更新m_strPathName并且此路径中缺少'C:\Program Files\ICEHost\eererr.hpr' Projects目录

WinXp和Windows 7之间出现这种差异的原因是什么? 根据{{​​1}}更新CDocument::SetPathName的哪些信息? 如何使行为相同?

2 个答案:

答案 0 :(得分:2)

SetPathName()调用GetFullPathName(),它“将当前驱动器和目录的名称与指定的文件名合并”。所以差异可能在于如何获得当前目录。

记录了CFileDialog如何在不同的操作系统上选择不同的初始目录(请在下面选中lpstrInitialDir link)。也许它与此有关。

答案 1 :(得分:1)

您可能需要覆盖AddToRecentFileList函数。现在,使用Win7以不同方式实现Add方法。看看这个链接

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