我知道我所做的事情很奇怪,请不要担心。什么是正在发生然而,这绝对是疯狂的。
如果我尝试从以下位置复制 DLL 文件C:\SysWOW32\
从命令行使用copy
在 Windows 7 64 位上,我实际上最终得到了其中的文件C:\System32\
。为什么会发生这种情况?
好的 - dumpbin 能够区分 DLL 文件
C:\Users\user\Desktop>dumpbin /headers C:\Windows\System32\opengl32.dll | grep machine
8664 machine (x64)
C:\Users\user\Desktop>dumpbin /headers C:\Windows\SysWOW64\opengl32.dll | grep machine
14C machine (x86)
32 bit word machine
不行 - 其他命令,例如 md5sum (来自GOW https://github.com/bmatzelle/gow)得到错误的字节!
C:\Users\user\Desktop>md5sum C:\Windows\system32\opengl32.dll
\d1bbe227367ed791d5fcf08e132d2956 *C:\\Windows\\system32\\opengl32.dll
C:\Users\user\Desktop>md5sum C:\Windows\SysWow64\opengl32.dll
\d1bbe227367ed791d5fcf08e132d2956 *C:\\Windows\\SysWow64\\opengl32.dll
不正常 - 使用命令行复制 64 位 DLL
C:\Users\user\Desktop>copy C:\Windows\System32\opengl32.dll .
1 file(s) copied.
C:\Users\user\Desktop>dir opengl32.dll
07/13/2009 06:16 PM 791,552 opengl32.dll
C:\Users\user\Desktop>md5sum opengl32.dll
d1bbe227367ed791d5fcf08e132d2956 *opengl32.dll
C:\Users\user\Desktop>dumpbin /headers opengl32.dll | grep machine
14C machine (x86)
32 bit word machine
错误的!为什么 32 位 DLL 会被复制?
好的 - 使用命令行复制 32 位 DLL
C:\Users\user\Desktop>copy C:\Windows\SysWOW64\opengl32.dll .
Overwrite .\opengl32.dll? (Yes/No/All): yes
1 file(s) copied.
C:\Users\user\Desktop>dir opengl32.dll
07/13/2009 06:16 PM 791,552 opengl32.dll
C:\Users\user\Desktop>md5sum C:\Windows\System32\opengl32.dll
\d1bbe227367ed791d5fcf08e132d2956 *C:\\Windows\\System32\\opengl32.dll
C:\Users\user\Desktop>dumpbin /headers opengl32.dll | grep machine
14C machine (x86)
32 bit word machine
好的 - 使用资源管理器复制 64 位 DLL
<control-drag System32\opengl32.dll to desktop>
C:\Users\user\Desktop>dir opengl32.dll
07/13/2009 06:41 PM 1,039,872 opengl32.dll
C:\Users\user\Desktop>md5sum opengl32.dll
585fed4cdb8034b8b58aeb8008255817 *opengl32.dll
C:\Users\user\Desktop>dumpbin /headers opengl32.dll | grep machine
8664 machine (x64)
好的 - 使用资源管理器复制 32 位 DLL
<control-drag SysWow64\opengl32.dll to desktop>
C:\Users\user\Desktop>dir opengl32.dll
07/13/2009 06:16 PM 791,552 opengl32.dll
C:\Users\user\Desktop>md5sum opengl32.dll
d1bbe227367ed791d5fcf08e132d2956 *opengl32.dll
C:\Users\user\Desktop>dumpbin /headers opengl32.dll | grep machine
14C machine (x86)
32 bit word machine
谁能解释一下这里发生了什么?