VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 422|回复: 3

[已解决] Windows x86和x64问题

[复制链接]
38_avatar_middle
online_vip 2191265529 发表于 2018-7-24 23:09:47 | 显示全部楼层 |阅读模式
3驿站币
本帖最后由 2191265529 于 2018-7-25 00:30 编辑

https://www.microsoft.com/en-US/download/details.aspx?id=40784  这个网址下的Visual C++ Redistributable Packages for Visual Studio 2013

这个VS2013组件x64安装的DLL存在于System32目录,
x86安装的DLL存在于SysWOW64目录


x64代表64位安装包,x86代表32位安装包。
SysWOW64代表64位系统目录,System32代表32位系统目录。

那么这个VS2013组件DLL安装目录貌似反了,这是什么情况?

最佳答案

查看完整内容

Windows目录下SysWow64文件夹与System32文件夹 System32 Windows 操作系统的系统文件夹。是操作系统的神经中枢.文件夹中包含了大量的用于Windows操作系统的文件.这里主要用于存储 DLL 文件,控制面板小程序(.CPL), 设备驱动 (.drv), 帮助文件 (.hlp 和 .cnt), MS-DOS 工具 (.com), 语言支持文件 (.nls), 屏幕保护 (.scr), 安装信息文件 (.inf), 以及其它用于支持,配置,或操作的文件。 注意: 不要被文件夹名字中32蒙蔽了!! ...




上一篇:缓冲区总是崩溃
下一篇:CString分割

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

51_avatar_middle
online_admins Syc 发表于 2018-7-24 23:09:48 | 显示全部楼层
Windows目录下SysWow64文件夹与System32文件夹

System32
Windows 操作系统的系统文件夹。是操作系统的神经中枢.文件夹中包含了大量的用于Windows操作系统的文件.这里主要用于存储 DLL 文件,控制面板小程序(.CPL), 设备驱动 (.drv), 帮助文件 (.hlp 和 .cnt), MS-DOS 工具 (.com), 语言支持文件 (.nls), 屏幕保护 (.scr), 安装信息文件 (.inf), 以及其它用于支持,配置,或操作的文件。
注意:
不要被文件夹名字中32蒙蔽了!!!在64位操作系统中,此文件夹里的程序库都是64位的,64位的,64位的……

SysWow64
wow,什么是wow?
64位的Windows并不是简单地把所有东西都编译成64位就万事大吉的。关于64位的CPU应该做成什么样子,Intel和AMD曾有各自的打算。AMD的回答直接了当:新的64位处理器,应该能在提高更高处理能力的同时,保持对32位应用程序的兼容性。而Intel则希望借此机会,把下一代的处理器,设计得更完美。于是,就有了AMD的x86-64(后被称为amd64)的处理器和Intel的IA-64(安腾)处理器。和amd64不一样的是,安腾处理器并没有很好地提供对32位应用程序的支持。具体信息,读者在网上应该很容易找到,也就不多说了。

Windows作为一个操作系统,自然希望用户在运行64位操作系统时,也能像以前一样,运行各种32位应用程序。这一点,在amd64处理器上,相对容易做到。而安腾,几乎是另外一回事。(后来Intel也生产了兼容amd64的处理器,但那是后话。)

虽然我说“相对”容易做到,但也不是空手套白狼。当操作系统运行在64位时,怎么才能保证已经存在的32位应用程序以为自己仍然运行在32位系统上呢?微软的解决方案是:Wow64,全称是32bit Windows On 64bit Windows(64位Windows上的32位Windows)。

你也可以这样理解,虽然整个系统是运行在64位模式,但如果一个应该程序是32位的,Windows会在64位的基础上,加载一个“32位的Windows”。这样,这个32位应用程序就以为自己是运行在32位的系统之上的。

于是,你也可以想象,这就意味着,64位的Windows,不但带有64位操作系统应有的系统文件,还带有32位系统应有的系统文件。

我们都知道的是,Windows系统的主要系统文件都是放在一个叫做System32的文件夹中的。为了能同时放下两套系统文件,Windows会在64位的系统上,增加了一个文件夹,叫SysWow64。

这便有了一个问题,System32和SysWow64里面,哪个放的是64位的系统文件,哪个放的是32位的系统文件呢?

如果你还记得Wow64指的是64位Windows上的32位Windows,那么,你就能会想到,SysWow64里放的是32位的系统文件。但你也可能会问,为什么一个明明叫System32的文件夹装的是64位的系统文件,而一个明明叫SysWow64的文件夹装的却是32位的系统文件呢?既然是64位的系统,为什么不能有System64和System32这样的文件夹呢?

这个问题问得很好。答案也很简单:人在江湖,身不由己。

兼容性
如果我问你,可曾有多少机会接触过安腾处理器呢?我想,对于一般人来讲,应该是没有的。那为什么amd64会大行其道,而安腾处理器却鲜为人知呢?还是因为一个软硬件设计上的关键概念:兼容性。

正是因为安腾处理器,没有做好对已有的32位系统提供良好的支持,便其一直处于市场的边缘。这和你不会买一台看不了模拟信号频道的高清电视是一个道理。

之前我们谈到的兼容性,是指在64位Windows上,兼容已经有的32位应用程序。现在考虑另一种兼容性。

如果你写了一个很牛的32位的应用程序,现在,你想把它变成64位的应用程序,以更充分地利用64位处理器所带来的新的处理能力。你肯定觉得,这不就是让64位编译器编译一遍就完了的事儿么?可能你发现,这并不是骨感的现实。你突然发现,你的程序里,为了某些你已经想不起来的原因,把System32这个文件夹,写死在了你的程序里。而这个System32中的32,让你很不安。你尝试着运行了你的程序,却发现一切正常。为什么呢?因为这是Windows系统的另一个兼容性方面的努力:让一个已有的32位应用程序,不加修改或者尽可能少地加以修改,便可以被编译成64位应用程序并在64位Windows上运行。其实,把System32这样的路径,写死在程序里,并不是一个个案。所以,为了保证这些应用程序可以顺利地过渡到64位,Windows最后还是决定让64位的系统文件放在System32的文件夹下。而让32位的系统文件,搬到了SysWow64中去。

你肯定会想,那让32位搬到SysWow64中去以后,那些写死在32位应用程序中的System32怎么办?答:Windows会给他们转向到SysWow64中去。那让64位中的System32转向到System64不也是一样么?真的一样么?不一样么?真的一样么?不一样么?真的不一样。

作为64位Windows操作系统,当然是希望能充分发挥64位处理器的潜力,让应用程序更有效率地运行。如果在运行64位应用程序时,总要检查是否需要转向,势必影响程序运行效率。所以,不能给64位应用程序做没有必要的转向,如果说必须要转,那就只能转32位应用程序了。是的,没有办法,在64位操作系统中,32位应用程序要做一些小的牺牲。

此外,为了保证32位应用程序不与64位应用程序相冲突,除了System32文件夹外,注册表也需要为32位和64位提供两套,也需要让32位的应用程序在必要时重定向。

结论
所以SysWow64文件夹,是64位Windows,用来存放32位Windows系统文件的地方。

后记
本人被这个问题坑害不浅。写个程序放在winXP下运行总是出现0Xc000007b的错误,查了好多材料,都说是我32位程序引用64位版本库所至,于是我就傻乎乎的从原来系统的System32中去下载所谓的“32位”程序库,结果一点儿用都没有,郁闷的要死……一天整个人都不好了……

点评

巨牛般的分析,膜拜啊。  发表于 2018-7-25 00:29

评分

参与人数 1驿站币 +2 热心值 +2 收起 理由
38_avatar_small 2191265529 + 2 + 2 很给力!

查看全部评分

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

81_avatar_middle
online_vip Tiptoe 发表于 2018-9-15 21:59:39 | 显示全部楼层
前两天被这个问题折腾死了

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-10-16 21:26

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表