纠结的x64
来源:互联网 发布:降龙990会计核算软件 编辑:程序博客网 时间:2024/05/06 09:27
在64位Windows系统中,除了16位程序或32位驱动外,32位程序代码无需修改为64位代码即可通过Windows-32-on-Windows-64 (WOW64) 子系统运行。
为了兼容性和预防32位程序意外访问64位程序的数据,WOW64子系统通过重定向注册表调用或部分文件系统调用。比如%systemroot%\System32和Program Files目录都是用于64位程序的,32位程序访问这些目录就会被重定向到%windir%\SysWOW64和Program Files (x86)目录。
但这种为了兼容的设计会照成一些问题,比如通过命令提示符执行一些以前用于.bat 和 .cmd批处理脚本,就可能造成不像你期望的那样对“Program Files”“%windir%\System32″内的文件进行安装访问删除操作,因为这些脚本是用于以前32位程序的话本应该重定向到Program Files (x86)和%windir%\SysWOW64,而cmd运行或直接双击这些脚本使用的却是64位的cmd。
有两个解决办法:
一、修改脚本文件。
二、不修改文件,直接开始菜单搜索框输入%windir%\SysWoW64\cmd.exe运行32位的cmd,这样通过它运行的脚本就会自动重定向这些内容。
当然注册表也会有同样问题,比如以前论坛里有个网友就问过为何导入的注册表没有效果我就为他解答过:它的情况是一个提取出的游戏吧,第一次运行需要导入一 个注册表文件,双击导入的话就游戏还是无法运行,当然游戏是32位的,你直接双击是调用64位的regedit导入到 HKEY_LOCAL_MACHINE\SOFTWARE,而游戏运行访问注册表时却要被重定向到HKEY_LOCAL_MACHINE \SOFTWARE\Wow6432Node,当然会出现问题了,然而一般的安装版却不会又问题,因为安装程序是32位安装时就是被重定向到 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node的,运行时当然没问题了。
解决方法也很简单:
一,修改文件,例如把文件中的HKEY_LOCAL_MACHINE\SOFTWARE都改为HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node。
二,不修改文件,%windir%\SysWoW64\regedit.exe '要导入的注册表文件路径',这样调用32位的regedit导入注册表文件。
http://msdn.microsoft.com/en-us/library/aa384187%28v=vs.85%29.aspx 在64位系统下,默认运行32位程序(包括cmd)
因此:
32位程序如果在批处理中要转向到实际的system32文件夹,就必须用 %windir%\sysnative
而转向到实际的syswow64文件夹便直接是 %windir%\system32- 纠结的x64
- 纠结的忧伤 纠结的爱
- 纠结的人生,纠结的工作
- 纠结的一天!!!
- 好纠结的一天
- 关于继承的纠结
- 纠结的人生
- 纠结的unsigned类型
- 纠结的poj1573.。。
- 纠结的镜头
- 纠结过后的决定
- 最近纠结的OFFER
- 纠结的无耻男人
- 纠结的作业.
- 纠结的隐形眼镜
- 纠结的NOKIA
- 不再纠结的NOKIA
- 纠结的三层框架
- uva10622
- LeeCode_050 Pow(x, n)
- HTML中使背景图片自适应浏览器大小
- hadoop任务提速选项
- HDFS的读写流程
- 纠结的x64
- 线程和QObjects
- MapReduce详细过程
- Activity
- VB程序使用管理员权限
- NoSQL之Redis(二)---Java操作Redis存储自定义类型数据
- yarn的工作流程
- 蓝桥杯P1103 复数运算问题
- bzoj4010【HNOI2015】菜肴制作