64位系统 system32 和 syswow64

\Windows\SysWOW64  文件夹下存放32位的库和应用程序 (WOW64 == Windows on Windows 64 bit )

\Windows\System32  文件夹下存放64位的库和应用程序

当安装32位的程序在64位系统上时,会把指定拷贝到system32的文件自动改为拷贝到SysWOW64下。

因此,要想在64位系统下拷贝到system32下,必须使用语句:

Disable(WOW64FSREDIRECTION ); Enable(WOW64FSREDIRECTION );

例如: XCopyFile(TARGETDIR ^ "文件", WINDIR^"System32", COMP_NORMAL);

在32位系统下,文件会被拷贝到system32目录;

在64位系统下,文件则被拷贝到SysWOW64目录下;

如果

Disable(WOW64FSREDIRECTION );

XCopyFile(TARGETDIR ^ "文件", WINDIR^"System32", COMP_NORMAL);

文件则在64位下拷贝进了System32目录下。

注意:最好在做完相关动作后,添加Enable(WOW64FSREDIRECTION );以免影像其他AP。

补充:

在32位系统下指向\Windows\System32的系统变量为:WINSYSDIR

在64位系统下指向\Windows\System32的系统变量为:WINSYSDIR64

时间: 2024-08-22 02:31:23

64位系统 system32 和 syswow64的相关文章

关于在64位系统上,使用APlayer,运行报错“找不到指定的模块”

使用APlayer开发了一个C#程序,原先开发电脑是32位的,安装电脑也是32位,只需要将相应的文件打包,然后在system32文件夹中放入atl71.dll和D3DX9_43.dll,项目运转正常.但后来因为系统升级,换了台win10 64位的系统,开发时只需将项目的平台换成x86,但是打包后安装却报错,且system32下的两个dll已存在.经过一天的摸索,因为64位系统有个SysWOW64  文件夹,将所需的两个dll放入此文件夹,问题得已解决. 网上查出两个文件夹的区别 \Windows

64位系统下System32文件系统重定向

前言 因为一次偶然的机会,需要访问系统目录“C:/Windows/System32“文件夹下的内容,使用的测试机器上预装了win7 64系统.在程序运行中竟然发生了该文件路径不存在的问题!!通过查看网上相关的资料,了解到64位系统下,System32(同时也包括Program Files)这两个文件夹被动态地重定向了.为了可以直观的反映这个问题,这里将编写一个小的测试程序进行验证. 实例验证 首先随机选择一个文件,并将其拷贝到系统目录的System32文件夹下.本文选择QQ启动程序进行验证(主要

关于32位程序在64位系统下运行中需要注意的重定向问题(有图,很清楚)

0x00 前言 最近学习了[email protected]的文章<Persistence Architecture Matters>,恰巧解决了我之前遇到过的一个问题,理清了文件和注册表重定向中需要注意的细节 大家在学习的过程中难免也会碰到,所以在此分享一下. <Persistence Architecture Matters>的链接:https://labs.mwrinfosecurity.com/blog/persistence-architecture-matters/ 0

Windows 7/8 64位系统 不能注册32位dll 文件的解决方案

这几天碰到一个问题,运行一个易语言开发的软件出现以下错误.我的系统是 Windows7 64 位 专业版.在系统盘 windows/system32  下查找 dm.dll.但是没有这个文件.于是我到百度去查找相关答案,问的人有很多,答案却是相同的,我断定这些都是复制来粘贴去的,都没有一个好的答案,有些更是离谱的发疯了.到百度知道提问,也是复制粘贴到,牛头不对马嘴. 错误信息:不能载入OCX组件 "Dm1.0版1.0版",其组件或类型库文件名为"dm.dll",数字

64位系统里注册32位软件

1.在64位系统里注册32位软件所需的一些dll会提示不兼容,大概因为32 位进程不能加载64位Dll,64位进程也不可以加载32的导致. 若要支持的32 位和64 位COM 注册和程序共存状态,需要WOW64 子系统. 故可以把这些32的dll.ax从C:\Windows\system32\复制到C:\Windows\sysWOW64\下注册即可. 如:regsvr32 C:\Windows\sysWOW64\netconn.dll 2.对于UAC.低权限用户应使用管理员帐户. 3.有时候注册

32位系统与64位系统

64位系统已经非常普及了,因此我们写代码的时候,了解32位与64位系统的编码差异就显得很重要了.我用的计算机是win10,64位,之前对于任务管理器里的进程32和64分不清,而且对于System32与SestemWow64两个文件夹也时常搞错,今天看书查资料才终于弄懂一些. 64位系统有两个System目录,C:\Windows\System32和C:\Windows\SysWOW64,前者主要包含64位系统文件,后者目录下主要是32位系统文件,这个跟它们名字里的数字刚好是相反的(困扰我好长时间

win2003 64位系统下ODBC连接使用

环境 一般系统部署的服务器若是windows系统,就会采用64位win2003的结构.可是我们编写的程序绝大多数都是在x86下32位cpu架构中编译的,要正常移植到64位机器还真的是很麻烦,不仅要求应用程序是64位模式编译,还需要数据库也得是64位,iis64位,framework64位,好在相应的厂商都提供这些支持组件.不知道有人遇到过像我这样的问题么,应用中有需要增加一个Access数据库导入功能,这就需要连接ODBC的mdb驱动,可是Microsoft OLE DB Provider fo

64位系统下注册32位dll文件

64位系统下注册32位dll文件 在64位系统里注册32位软件所需的一些dll会提示不兼容,大概因为32 位进程不能加载64位Dll,64位进程也不可以加载32的导致. 若要支持的32 位和64 位COM 注册和程序共存状态,需要WOW64 子系统. 故可以把这些32的dll.ax从C:\Windows\system32\复制到C:\Windows\sysWOW64\下注册即可. 如:regsvr32 C:\Windows\sysWOW64\MakerCom.dll 原文地址:https://w

去除win7 64位系统桌面图标小箭头

去除win7电脑系统桌面图标的快捷方式的小箭头: 首先在桌面新建一个文本文档,设为去除箭头.txt,第二步,把如下代码粘贴到文档中. reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons" /v 29 /d "%systemroot%\system32\imageres.dll,196" /t reg_sz /f taskkill /f /