Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1443164
  • 博文数量: 254
  • 博客积分: 8696
  • 博客等级: 中将
  • 技术积分: 2961
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-03 16:46
文章分类

全部博文(254)

文章存档

2015年(4)

2014年(18)

2013年(16)

2012年(8)

2011年(25)

2010年(2)

2009年(74)

2008年(107)

分类: WINDOWS

2015-12-28 19:20:35

环境:windows 10 64位;
在MFC中调用PathIsDirectory时,返回false,GetLastError() 为2,无法找到目标,但"C:\\Windows\\System32\\oobe\\info"确实存在的。

原因:
64位的windows对system32做了重定向。以下是网络资料():
====================================参考资料=============================

其实%WINDIR%\SysNative文件夹是不存在的,它只是64位Windows系统提供的一种重定向机制。

我们已经知道64位Windows通过System32和SysWoW64两件文件夹来区分64位和32位的系统文件,当32位的应用程序尝试访问System32文件夹的时候,系统会自动把它转到SysWoW64文件夹,这样32位应用程序在32位系统和64位系统就都可以运行了,(而不需要为了64位系统而把System32改成SysWoW64)。

这样就出现了一个问题,32位的应用程序怎么访问真正的System32文件夹呢,即存放64位系统文件的文件夹?答案就是通过SysNative 文件夹。这个文件夹并不存在,即在资源管理器中找不到,但当32位的应用程序尝试访问这个文件夹时,64位的Windows会把它重定向到真正的 System32文件夹,从而提供了一种让32位应用程序访问64位系统文件的方法。具体细节请参考MSDN。
====================================End====================================

解决:
判断系统是32位或64位;
64位采用"C:\\Windows\\SysNative\\oobe\\info"
32位采用"C:\\Windows\\System32\\oobe\\info"


阅读(3995) | 评论(0) | 转发(0) |
0

上一篇:libasound2-dev安装

下一篇:没有了

给主人留下些什么吧!~~