Engane um aplicativo de 32 bits para execução no sistema de 64 bits?

3

Temos um aplicativo Windows legado que verifica se está sendo executado em um sistema de 32 ou 64 bits. Aparentemente, não há versão de 64 bits disponível, mas estamos agora diante de uma situação em que devemos executá-lo em uma estação de trabalho Windows 7 de 64 bits. Além de criar uma VM de 32 bits para essa finalidade, alguém tem alguma sugestão que possa solucionar esse problema?

    
por Josh 08.08.2012 / 20:14

3 respostas

6

O método que uso é sinalizar o aplicativo desejável com cabeçalhos para as DLLs de 32 bits, portanto, toda vez que eu o executar, o aplicativo verá as DLLs de modo de 32 bits e as carregará em seu espaço de memória:

  1. Faça o download do Microsoft Windows SDK para Windows 7 e .NET Framework 4 ;

  2. Instale-o;

  3. Agarre o utilitário Microsoft CorFlags chamado CorFlags.exe da pasta Bin do diretório de arquivos de programa do SDK;

  4. Sinalize seu aplicativo para usar dlls de 32 bits usando:

    CorFlags /32BIT+ yourapplication.exe
    

Na próxima vez que você executar seu aplicativo, o Windows verá o novo cabeçalho e o executará como um aplicativo de 32 bits. Seu aplicativo usará as DLLs de 32 bits fornecidas pelo Windows.

    
por 08.08.2012 / 20:35
2

O Visual FoxPro não pode usar drivers ODBC de 64 bits, mesmo que o aplicativo funcione bem em um sistema de 64 bits.

Para contornar este problema, abra um Prompt de Comando elevado e execute C:\Windows\SysWow64\odbcad32.exe para configurar seus DSNs.

(Shamelessly roubado de aqui .)

    
por 08.08.2012 / 20:34
2

Eu sei que você disse que não queria criar uma VM para isso, mas o XP Mode fará exatamente o que você precisa, e pode ser executado de forma transparente para que o aplicativo não pareça estar rodando em uma VM. / p>

Instale o XP Mode e veja se ele atende às suas necessidades.

    
por 08.08.2012 / 22:25

Tags