64비트의 Windows 7이 출시되면서 Windows 디렉토리의 일반적인 폴더 할당 방식에 약간의 변화가 생겼습니다. Windows 10, Windows 8 및 Windows 70의 64비트 버전에는 두 개의 새 폴더가 포함되어 있습니다. 이들은 Sysnative입니다. 및 SysWOW64 폴더. 이것은 64비트 Windows에만 있습니다. 64비트 시스템에서 32비트 Windows를 실행하면 Windows가 표시되지 않습니다. 32비트 시스템에서 32비트 Windows를 실행할 때도 이러한 항목이 표시되지 않습니다.
Windows 디렉토리 외부에 다른 폴더가 있으며 Program Files(x86)라고 합니다. . 우리는 프로그램의 실행 파일이 있는 폴더 Program Files 이름에 익숙합니다. 64비트 시스템에서 64비트 프로그램은 Program Files 폴더에 저장되고 32비트 프로그램은 Program Files(x86)에 저장됩니다. 그러나 Windows는 64비트 시스템에서 32비트 프로그램을 실행하기 위해 에뮬레이션과 같은 것을 사용합니다. 따라서 Windows(64비트)에서 시스템 폴더가 무엇인지 알고 이해해야 원하는 파일에 도달하는 방법을 알 수 있습니다.
32비트 시스템과 달리 32비트 DLL이 System32 폴더에 저장됩니다. , Windows의 64비트 버전은 System32 폴더에 64비트와 관련된 DLL을 저장합니다. 이는 프로그래밍 목적을 용이하게 하고 이전 버전과의 호환성을 제공하기 위한 것입니다. 즉, 64비트 프로그램이 코드에서 System32를 참조하는 경우 호출될 때 자동으로 64비트 DLL을 가져옵니다. 이는 Windows 64비트용 프로그램에서 코드를 변경할 필요가 없기 때문에 개발자에게 도움이 됩니다.
간단히 말해서 Windows는 64비트로 업그레이드한 후 API를 사용하는 경우에도 적절한 DLL을 얻기 위해 이전 프로그램을 다시 코딩할 필요가 없도록 Windows 디렉터리의 System32 폴더에서 모든 32비트 DLL을 다른 폴더로 이동했습니다. 32비트 응용 프로그램이 System32 폴더에 액세스하려고 할 때 문제가 발생합니다. 이 경우 프로그램은 64비트 DLL을 처리하도록 작성되지 않았기 때문에 충돌합니다.
읽기 :Panther 폴더가 무엇인가요?
Windows 64비트의 SysWOW64 폴더
모든 32비트 DLL이 새 SysWOW64 폴더로 이동되었습니다. 64비트 버전의 Windows 10, Windows 8, Windows 7에서는 32비트 프로그램이 32비트 DLL을 호출할 때 SysWOW64 폴더에 도달해야 합니다.
개발자는 DLL 기능이 SysWOW64 폴더를 가리키도록 프로그램과 응용 프로그램을 검색해야 한다고 생각할 수 있습니다. 그러나 Microsoft는 이미 이를 처리했습니다. C:\Windows\System32를 호출하는 32비트 프로그램인 경우 , 에뮬레이터는 경로를 C:\Windows\SysWOW64로 리디렉션합니다. . 즉, Windows 64비트에서 32비트 프로그램을 실행하기 위해서는 에뮬레이터를 사용하여 적절한 하위 호환성을 유지하고 DLL 파일 호출 시 오류를 방지합니다.
읽기 :FOUND.000 폴더가 무엇인가요?
Windows 64비트의 Sysnative 폴더
32비트 프로그램이나 응용 프로그램에 64비트 DLL이 필요한 경우가 있습니다. 이 경우 리디렉션 폴더 Sysnative를 사용해야 합니다. . SysNative를 가상 폴더 및 System32 폴더를 가리키는 별칭으로 간주할 수 있습니다. 시스템에 물리적으로 존재하지 않습니다.
따라서 32비트 프로그램이 64비트 DLL에 액세스해야 하는 경우 C:\Windows\System32를 사용하지 마십시오. 32비트 프로그램 에뮬레이터가 SysWOW64라는 32비트 DLL 폴더로 이동하기 때문입니다. 대신 C:\Windows\SysNative를 사용하세요. DLL 프로그램의 경로로. 경로에 Sysnative를 사용하면 SysWOW64 폴더 대신 System32 폴더로 리디렉션됩니다.
파일 Windows 탐색기를 열면 C:\Windows에서 Sysnative 폴더를 찾을 수 없습니다. 숨김 폴더와 시스템 폴더를 표시하도록 폴더 옵션을 설정한 경우에도 마찬가지입니다. Windows 파일 탐색기는 64비트 Windows에서 실행할 때 64비트 프로그램이고 Sysnative 폴더는 32비트 프로그램에서만 볼 수 있고 액세스할 수 있기 때문입니다.
요약하자면:
- System32 폴더에는 64비트 DLL 파일이 있습니다.
- SysWOW64에는 32비트 DLL 파일이 포함되어 있으며 32비트 프로그램은 이 폴더로 자동 리디렉션됩니다.
- Sysnative는 32비트 프로그램이 64비트 DLL을 호출할 수 있도록 하는 리디렉션 폴더입니다.
추가 읽기:MSDN.
System32와 SysWOW64 폴더의 차이점을 알고 싶으십니까?