64비트 시스템에서 32비트 모드로 exe를 어떻게 실행할 수 있나요?

64비트 시스템에서 32비트 모드로 exe를 어떻게 실행할 수 있나요?

32비트 창에서 실행하면 제대로 작동하지만 64비트 창에서 실행하면 중단되는 실행 파일이 있습니다.

64비트 시스템에서 강제로 32비트 모드로 실행되도록 할 수 있는 방법이 있습니까?

소스코드에 접근할 수 없습니다.

답변1

얼마나 기술적인 답변을 원하시나요? 몇 가지 SDK 도구를 사용하면 exe가 항상 32비트를 실행하도록 강제할 수 있지만 약간의 작업이 필요합니다.

쉬운 대답은 32비트 프로세스에서 시작하는 것입니다(예: %SystemRoot%\SYSWOW64\cmd.exe시작하는 데 사용).

더 복잡한 것은 어떤 종류의 exe인지 확인한 다음 직접 수정하는 것입니다. 여기서의 배경은 Windows API와 직접 작동하는 언어의 컴파일된 코드가 개발자에 의해 컴파일 타임에 32비트 또는 64비트로 생성된다는 점을 이해하는 것입니다. 그러면 소스 코드로 돌아가지 않고는 변경할 수 없습니다.

그러나 점점 더 애플리케이션 작성을 더 쉽게 만드는 가상화 계층을 통해 애플리케이션이 작성되고 있습니다. .NET과 Java라는 두 가지 일반적인 것이 있습니다. 올바른 Java 런타임 설치를 강제로 실행하면 문제가 해결된다는 점을 제외하고는 Java에 대해 잘 모르겠습니다.

.NET의 경우 SDK 도구를 사용하여 다음을 수행할 수 있습니다.

  • 애플리케이션이 "AnyCPU"인지 확인합니다 corflags myExe.exe. .NET SDK의 유틸리티를 사용하여 .NET 어셈블리의 헤더를 읽으면 exe의 경우 다음과 같은 결과가 반환됩니다.
버전 : v4.0.30319
CLR 헤더: 2.5
PE : PE32
CorFlags : 0x20003
혼자 : 1
32비트REQ : 0
32BITPREF : 1
서명됨 : 0

32BITREQ32비트가 필요하지 않기 때문 이라고 합니다 AnyCPU.

  • corflags해당 옵션과 함께 사용하여 /32BITREQ+exe를 32비트 전용으로 수정합니다.

답변2

Windows 7 Professional(또는 그 이상)을 사용하는 경우 다음에서 가상 XP 모드를 사용하세요.마이크로소프트

이는 32비트 환경을 에뮬레이트(?)하며 일부 오래된 16비트 프로그램을 실행하는 데 유용하다는 것이 입증되었습니다.

답변3

모든 것을 시도했지만 아무것도 작동하지 않았습니다. 하지만 gta iv 디렉토리를 C/프로그램 파일(x86)에서 C/프로그램 파일로 옮기는 것에 대해 생각했는데 x86은 32비트 앱용이므로 작동하지만(제 생각에는) 어쨌든 작동했습니다.

답변4

실제로 이를 수용하는 더 쉬운 방법이 있습니다(장기적인 솔루션은 아님).

"corflags.exe" 응용 프로그램을 \windows\system32 폴더에 놓습니다. 관리자 권한으로 명령줄을 열고 다음을 입력하세요.

corflags "exe의 경로 및 이름" /32BITPREF32+

이렇게 하면 애플리케이션이 64비트 대신 32비트 프로세스로 실행됩니다.

관련 정보