Como posso executar um exe no modo de 32 bits em uma máquina de 64 bits?

Como posso executar um exe no modo de 32 bits em uma máquina de 64 bits?

Eu tenho um executável que funciona bem quando executado em janelas de 32 bits, mas quebra quando executado em janelas de 64 bits.

Existe alguma maneira de forçá-lo a rodar no modo de 32 bits em uma máquina de 64 bits?

Não tenho acesso ao código fonte.

Responder1

Quão técnica você deseja? Você provavelmente pode forçar o exe a rodar sempre em 32 bits com algumas ferramentas SDK, mas isso requer um pouco de trabalho.

A resposta fácil é iniciar a partir de um processo de 32 bits (por exemplo, usar %SystemRoot%\SYSWOW64\cmd.exepara iniciar).

O mais complexo é verificar que tipo de exe é e modificá-lo você mesmo. O pano de fundo aqui é entender que o código compilado de linguagens que funcionam diretamente com as APIs do Windows são criados como 32 bits ou 64 bits em tempo de compilação pelo desenvolvedor. Isso não pode ser alterado sem voltar ao código-fonte.

No entanto, cada vez mais aplicações são escritas através de uma camada de virtualização que facilita a escrita de aplicações. Existem dois comuns: .NET e Java. Não tenho certeza sobre o Java, exceto saber que forçar a instalação correta do tempo de execução do Java resolverá o problema.

Para .NET você pode usar ferramentas SDK para:

  • Valide se a aplicação é "AnyCPU": corflags myExe.exe. Usar um utilitário do SDK do .NET para ler os cabeçalhos de um assembly .NET, para um exe retornará algo como:
Versão: v4.0.30319
Cabeçalho CLR: 2,5
PE: PE32
CorFlags: 0x20003
SÓ: 1
32BITREQ: 0
32BITPREF: 1
Assinado: 0

o 32BITREQme diz que isso ocorre AnyCPUporque 32 bits não é necessário.

  • Use corflagscom sua /32BITREQ+opção de modificar o exe para ser apenas de 32 bits.

Responder2

Se você possui o Windows 7 Professional (ou superior), use o modo XP virtual deMicrosoft

isso emula (?) um ambiente de 32 bits e provou ser útil para executar alguns programas antigos de 16 bits

Responder3

Tentei de tudo e nada funcionou. mas então pensei em mover o diretório gta iv dos arquivos de programas C/(x86) para arquivos de programas C/e funcionou, já que x86 é para aplicativos de 32 bits (eu acho), mas funcionou de qualquer maneira.

Responder4

Na verdade, existe uma maneira mais fácil de acomodar isso (não é uma solução de longo prazo).

Solte o aplicativo "corflags.exe" na pasta \windows\system32. Abra uma linha de comando como administrador e digite...

corflags "caminho e nome do exe" /32BITPREF32+

Isso forçará o aplicativo a ser executado como um processo de 32 bits em vez de 64 bits.

informação relacionada