0

Windows 7 64 ビットでは、System32 の *32.dll は 64 ビット ライブラリです (Dependency Walker - depends.exe x64 によると)。私が気付いた奇妙な問題は、たとえばcp /c/System32/ws2_32.dll /c/mingw64/some/lib/libws2_32.dll、MSYS シェルで実行すると、DLL が壊れている/32 ビット ファイルに変換されていることです (まだ Dependency Walker によると)... Windows エクスプローラーを使用してコピー/名前を変更している間は、変更されていません... まだ変。どなたか解説があれば...

cpまたは、コマンドの使用法について何か見逃していましたか...

注:--preserve=allまたはのようなオプションは既に試し--symbolic-linkました。

ありがとう。

4

1 に答える 1

1

cpどういうわけか(直接または実行元の親プロセスが原因で)32ビットプロセスとして実行されています。ファイル システムのリダイレクトws2_32.dllが開始され、実際にはディレクトリからコピーしています。C:\Windows\SysWOW64ディレクトリは 32​​ ビット DLL として既に存在します。

32 ビット アプリケーションは、%windir%\System32 を %windir%\Sysnative に置き換えることにより、ネイティブ システム ディレクトリにアクセスできます。WOW64 は、ファイル システムがアクセスをリダイレクトしないことを示すために使用される特別なエイリアスとして Sysnative を認識します。

于 2013-11-25T09:25:02.750 に答える