使用MSYS复制System32 DLL会破坏库的64位

时间:2013-11-25 09:18:53

标签: cp msys mingw-w64 system32

在Windows 7 64bit下,System32的* 32.dll是64位库(根据Dependency Walker - depends.exe x64)。我注意到一个奇怪的问题是,在MSYS Shell中执行 - 例如 - cp /c/System32/ws2_32.dll /c/mingw64/some/lib/libws2_32.dll正在破坏/转换DLL到32位文件(仍然依赖于Dependency Walker)...在通过Windows资源管理器复制/重命名时保留它不变......还是很奇怪。如果有人有解释......

或者我错过了cp命令用法......

注意:我已经尝试了--preserve=all--symbolic-link等选项。

感谢。

1 个答案:

答案 0 :(得分:1)

cp以某种方式(直接或由于您正在运行它的父进程)作为32位进程运行。 File System redirection正在进行中,您实际上正在从ws2_32.dll目录复制C:\Windows\SysWOW64 - 它已作为32位DLL存在。

  

32位应用程序可以通过将%windir%\ Sysnative替换为%windir%\ System32来访问本机系统目录。 WOW64将Sysnative识别为一个特殊别名,用于指示文件系统不应重定向访问。