64 비트 컴퓨터에서 32 비트 모드로 exe를 실행하려면 어떻게해야합니까?


18

32 비트 창에서 실행될 때 잘 작동하지만 64 비트 창에서 실행될 때 작동하는 실행 파일이 있습니다.

64 비트 컴퓨터에서 32 비트 모드로 강제 실행할 수있는 방법이 있습니까?

소스 코드에 액세스 할 수 없습니다.


이것은 말이되지 않습니다. 소프트웨어에 64 비트 시스템에서 실행하지 않으면 명시 적으로 실패하는 코드가없는 한. 32 비트는 64 비트에서 정상적으로 실행되지만 문제는 다른 방식으로 발생합니다 (32 비트에서 64 비트 실행). 오류 메시지가 나타 납니까?
Dave

3
이 코드를 작성 했습니까 (이 경우 코드 및 오류 메시지와 함께 Stack Overflow가 필요한 장소입니까) 아니면 실행중인 다른 사람의 프로그램입니까? 오류 메시지가 포함되어 있으면 도움이됩니다.
ChrisF

답변:


16

어떤 기술적 인 답변을 원하십니까? exe가 항상 몇 가지 SDK 도구를 사용하여 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
ILONLY : 1
32BITREQ : 0
32 비트 PREF : 1
서명 : 0

32BITREQ이가 나에게 말한다 AnyCPU32 비트가 필요하지 않기 때문에.

  • exe를 32 비트로 수정하려면 corflags해당 /32BITREQ+옵션 과 함께 사용하십시오 .

+1 .Net AnyCPU 설정이 처음으로 생각되었습니다. 이 설정을 올바르게 지정하지 않는 프로그래머는 알 수 없습니다. 컴파일 된 후에 고칠 수있는 방법이 있다고 들었습니다.
Hand-E-Food

2
나는 그것을 시작하려고 시도했지만 %SystemRoot%\SYSWOW64\cmd.exe같은 방식으로 실패했습니다-오류 메시지 표시-TaskManager에서 체크인 할 때 exe 프로세스가 32 비트 프로세스로 표시되지 않습니다
Rory

1
Dave가 위에서 요청한 것처럼 정확한 오류 메시지는 무엇 입니까?
카란

5
관리되는 AnyCPU EXE를 시작해도 SYSWOW64\cmd.exe여전히 64 비트 프로세스로 실행됩니다 (방금 시도했습니다).
Carl Walsh

3

Windows 7 Professional 이상을 사용하는 경우 Microsoft 의 가상 XP 모드를 사용 하십시오.

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


0

모든 것을 시도했지만 아무것도 효과가 없었습니다. 그러나 gta iv 디렉토리를 C / 프로그램 파일 (x86)에서 C / 프로그램 파일로 이동하는 것에 대해 생각했으며 x86은 32 비트 앱 용이므로 작동하지만 어쨌든 작동했습니다.


0

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

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

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

그러면 응용 프로그램이 64 비트 대신 32 비트 프로세스로 실행됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.