paladins - erro 0xc00007b windows 7 64 bits



O aplicativo não pôde iniciar corretamente(0xc000007b) (12)

É possível que você tenha várias versões da (s) dll (s) no seu sistema. Você pode pesquisar seu sistema para descobrir. O problema pode ser resolvido simplesmente mudando a ordem dos diretórios em seu caminho. Este foi o meu problema. ( Não é possível executar a GUI do Qt Creator fora do Qt. "O aplicativo não pôde iniciar corretamente (0xc000007b)" erro )

Eu tenho um aplicativo cliente / servidor que tenho desenvolvido em um único PC. Agora ele precisa de duas portas seriais, então eu peguei um PC emprestado de um amigo.

Quando eu construo meu aplicativo e tento executá-lo ou depurá-lo (seja no IDE do Delphi ou no gerenciador de arquivos do Windows), ele comete o erro "O aplicativo não pôde ser iniciado corretamente (0xc000007b)".

Googling não traz muito, mas parece indicar que isso não é nada específico do Delphi e acontece com outros aplicativos. Parece ser causado por chamar uma DLL de 32 bits de um aplicativo de 64 bits ou vice-versa.

  • ambos os PCs são Windows 7, 64 bits
  • ambos têm edição inicial do Delphi Xe2 que só pode manipular 32 bits
  • O aplicativo funciona bem no meu PC, mas não no meu amigo
  • Outros aplicativos Delphi funcionam bem em ambos os PCs

Alguém pode me dar uma dica de como rastrear isso?


É uma dll perdida. Possivelmente, sua dll que trabalha com portas com tem uma dependência de dll não resolvida. Você pode usar o walker de dependência e o depurador do Windows. Verifique toda a biblioteca do mfc, por exemplo. Além disso, você pode usar nrCommlib - é ótimos componentes para trabalhar com portas.


Apenas resolvi este problema para o meu projeto pessoal (graças a Dries por isso). Para mim, foi porque o caminho do projeto era muito longo. Depois de salvar o .sln em um caminho mais curto (C: / MyProjects) e compilar a partir dele, ele correu sem o erro.


Este pode ser um caso em que a depuração do depurador pode ser útil. Essencialmente, se você seguir as instruções aqui, você pode executar dois ide e um irá depurar o outro. Se você desmarcar seu aplicativo em um, às vezes poderá detectar erros que, de outra forma, perderia. Vale a tentativa.


Eu tive o mesmo problema ao desenvolver um aplicativo cliente-servidor usando o Microsoft Visual Studio 2012.

Se você usou o Visual Studio para desenvolver o aplicativo, certifique-se de que o novo (ou seja, o computador em que o software não foi desenvolvido) tenha o Pacote Redistribuível do Microsoft Visual C ++ apropriado. Por apropriado, você precisa do ano certo e versão de bit (ou seja, x86 para 32 bits e x 64 para 64 bits) do pacote redistribuível do Visual C ++.

Os pacotes redistribuíveis do Visual C ++ instalam componentes de tempo de execução que são necessários para executar aplicativos C ++ criados usando o Visual Studio.

Aqui está um link para o Visual C ++ Redistribuível para o Visual Studio 2015 .

Você pode verificar quais versões estão instaladas indo ao Painel de Controle -> Programas -> Programas e Recursos.

Aqui está como eu recebi esse erro e consertei:

1) Eu desenvolvi um aplicativo de 32 bits usando o Visual Studio 2012 no meu computador. Vamos chamar meu computador ComputerA.

2) Eu instalei o arquivo .exe e os arquivos relacionados em um computador diferente que chamaremos de ComputerB.

3) No ComputerB, eu corri o .exe e recebi a mensagem de erro.

4) No ComputerB, examinei os Programas e Recursos e não vi o Visual C ++ 2012 Redistributable (x64).

5) No ComputerB, eu pesquisei no Visual C ++ 2012 Redistribuível e selecionei e instalei a versão x64.

6) No ComputerB, executei o .exe no ComputerB e não recebi a mensagem de erro.


Eu vi o erro ao tentar executar o executável de depuração do VC ++ em uma máquina que não tinha o Visual C ++ instalado. Construindo uma versão de lançamento e usando isso, consertou.


Isso pode acontecer se, por algum motivo, um recurso x86 for carregado de uma máquina x64. Para evitar isso explicitamente, adicione essa diretiva de pré-processamento ao stdafx.h (claro, no meu exemplo, o recurso problemático é a DLL de controles comuns do Windows.

#if defined(_WIN64)
#pragma comment(linker, "\"/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df'\"")
#endif

Na verdade, esse erro indica um formato de imagem inválido. No entanto, por que isso está acontecendo e o que o código de erro normalmente significa? Na verdade, isso pode ser exibido quando você está tentando executar um programa que é feito ou destinado a funcionar com um sistema operacional Windows de 64 bits, mas seu computador está executando em um sistema operacional de 32 bits.

Razões possíveis:

  • Microsoft Visual C ++
  • Precisa reiniciar
  • DirectX
  • .NET Framework
  • Precisa reinstalar
  • Precisa executar o aplicativo como administrador

Fonte: http://www.solveinweb.com/solved-the-application-was-unable-to-start-correctly-0xc000007b-click-ok-to-close-the-application/


Para começar, sugiro testar se há um problema entre seu aplicativo e suas dependências usando o walker de dependência


Recentemente, tive um problema em que estava desenvolvendo um aplicativo (que usava uma porta serial) e funcionava em todas as máquinas em que eu o testei, mas algumas pessoas estavam recebendo esse erro.

Acontece que todas as máquinas em que o erro aconteceu estavam executando o Win7 x64 e NUNCA havia sido atualizada.

Executar uma atualização do Windows corrigiu todas as máquinas no meu caso particular.


Uma dependência de tempo de carregamento não pôde ser resolvida. A maneira mais fácil de depurar isso é usar o Dependency Walker . Use a opção Perfil para obter a saída de diagnósticos do processo de carregamento. Isso identificará o ponto de falha e deve guiá-lo para uma solução.

A causa mais comum desse erro é tentar carregar uma DLL de 64 bits em um processo de 32 bits ou vice-versa.


Você pode ter isso se estiver tentando manifestar seu aplicativo que ele tem uma dependência no assembly Microsoft.Windows.Common-Controls . Você faz isso quando deseja carregar a Versão 6 da biblioteca de controles comuns - para que os estilos visuais sejam aplicados aos controles comuns.

Você provavelmente seguiu a documentação original da Microsoft desde o Windows XP e adicionou o seguinte ao manifesto do seu aplicativo:

<!-- Dependancy on Common Controls version 6 -->
<dependency>
    <dependentAssembly>
        <assemblyIdentity
                type="win32"
                name="Microsoft.Windows.Common-Controls"
                version="6.0.0.0"
                processorArchitecture="X86"
                publicKeyToken="6595b64144ccf1df"
                language="*"/>
    </dependentAssembly>
</dependency>

O Windows XP não é mais o sistema operacional e você não é mais um aplicativo de 32 bits. Nos 17 anos seguintes, a Microsoft atualizou sua documentação ; agora é hora de você atualizar seu manifesto:

<!-- Dependancy on Common Controls version 6 -->
<dependency>
    <dependentAssembly>
        <assemblyIdentity
                type="win32"
                name="Microsoft.Windows.Common-Controls"
                version="6.0.0.0"
                processorArchitecture="*"
                publicKeyToken="6595b64144ccf1df"
                language="*"/>
    </dependentAssembly>
</dependency>

Raymond Chen tem uma história maravilhosa dos controles comuns:





64bit