CDocument::SetPathName 在 WinXp 和 Windows 7 中的行为不同
当我在 Windows XP 中使用“eererr.hpr”调用 CDocument::SetPathName
时,它会将成员变量 m_strPathName
更新为值 'C:\Program Files\ICEHost\ Projects\eererr.hpr'
当我在 Windows 7 中执行相同的方法时,它用 'C:\Program 更新了
m_strPathName
此路径中缺少 Files\ICEHost\eererr.hpr'Projects
目录
WinXp 和 Windows 7 中出现这种差异的原因是什么? CDocument::SetPathName
根据什么信息更新 m_strPathName
? 如何才能使行为相同?
When I called CDocument::SetPathName
with 'eererr.hpr' in Windows XP it updates the member variable m_strPathName
with value 'C:\Program Files\ICEHost\Projects\eererr.hpr'
When I executed the same method in Windows 7 it updated m_strPathName
with 'C:\Program Files\ICEHost\eererr.hpr'
Projects
directory is missing in this path
What is the reason for this difference in WinXp and Windows 7?
Based on what information does CDocument::SetPathName
updates m_strPathName
?
How can make the behavior same?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
SetPathName()
调用GetFullPathName()
,它“将当前驱动器和目录的名称与指定的文件名合并”。所以区别可能在于如何获取当前目录。记录了 CFileDialog 如何在不同操作系统上选择不同的初始目录(检查下面的
lpstrInitialDir
链接)。也许与此有关。
SetPathName()
callsGetFullPathName()
which "merges the name of the current drive and directory with a specified file name". So the difference is probably on how the current directory is obtained.It is documented how CFileDialog selects a different initial directory on different OS (check
lpstrInitialDir
in the followinglink). Maybe it has to do with that.
您可能需要重写 AddToRecentFileList 函数。现在,Win7 中的 Add 方法的实现方式有所不同。查看此链接
http:// /social.msdn.microsoft.com/Forums/en-NZ/vcgeneral/thread/3fcb5f77-3c62-4d62-b01c-89a121ea835f
You might need to override the AddToRecentFileList function. The Add method is now implemented differently with Win7. Check out this link
http://social.msdn.microsoft.com/Forums/en-NZ/vcgeneral/thread/3fcb5f77-3c62-4d62-b01c-89a121ea835f