32 비트 창에서 실행될 때 잘 작동하지만 64 비트 창에서 실행될 때 작동하는 실행 파일이 있습니다.
64 비트 컴퓨터에서 32 비트 모드로 강제 실행할 수있는 방법이 있습니까?
소스 코드에 액세스 할 수 없습니다.
32 비트 창에서 실행될 때 잘 작동하지만 64 비트 창에서 실행될 때 작동하는 실행 파일이 있습니다.
64 비트 컴퓨터에서 32 비트 모드로 강제 실행할 수있는 방법이 있습니까?
소스 코드에 액세스 할 수 없습니다.
답변:
어떤 기술적 인 답변을 원하십니까? exe가 항상 몇 가지 SDK 도구를 사용하여 32 비트를 실행하도록 할 수는 있지만 약간의 작업이 필요합니다.
쉬운 대답은 32 비트 프로세스에서 시작하는 것입니다 (예 : %SystemRoot%\SYSWOW64\cmd.exe
시작 하는 데 사용).
더 복잡한 것은 어떤 종류의 EXE인지 확인한 다음 직접 수정하는 것입니다. 여기서는 Windows API와 직접 작동하는 언어의 컴파일 된 코드가 개발자가 컴파일 할 때 32 비트 또는 64 비트로 작성된다는 것을 이해해야합니다. 그런 다음 소스 코드로 돌아 가지 않고는 변경할 수 없습니다.
그러나 점점 더 애플리케이션을 작성하는 가상화 계층을 통해 애플리케이션이 작성됩니다. 일반적인 두 가지가 있습니다 : .NET과 Java. 올바른 Java 런타임 설치로 문제를 해결한다는 것을 알고 Java를 확신하지 못합니다.
.NET의 경우 SDK 도구를 사용하여 다음을 수행 할 수 있습니다.
corflags myExe.exe
. .NET SDK의 유틸리티를 사용하여 .NET 어셈블리의 헤더를 읽으면 exe에 대해 다음과 같은 결과가 반환됩니다.버전 : v4.0.30319 CLR 헤더 : 2.5 PE : PE32 CorFlags : 0x20003 ILONLY : 1 32BITREQ : 0 32 비트 PREF : 1 서명 : 0
은 32BITREQ
이가 나에게 말한다 AnyCPU
32 비트가 필요하지 않기 때문에.
corflags
해당 /32BITREQ+
옵션 과 함께 사용하십시오 .%SystemRoot%\SYSWOW64\cmd.exe
같은 방식으로 실패했습니다-오류 메시지 표시-TaskManager에서 체크인 할 때 exe 프로세스가 32 비트 프로세스로 표시되지 않습니다
SYSWOW64\cmd.exe
여전히 64 비트 프로세스로 실행됩니다 (방금 시도했습니다).