Usando esta biblioteca C ++

1

Estou tentando usar um arquivo executável (escrito em C) que chama uma biblioteca C ++. Estou recebendo este erro na minha caixa Windows Server 2008 :

Faulting application name: sample.exe, version: 0.0.0.0, time stamp: 0x4d668157
Faulting module name: MSVCR90.dll, version: 9.0.30729.4974, time stamp: 0x4b7a226f
Exception code: 0xc0000417
Fault offset: 0x0002fc96
Faulting process id: 0xf10
Faulting application start time: 0x01cbd45775cc7011
Faulting application path: C:\Bprobe\sample.exe
Faulting module path: C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4974_none_50940634bcb759cb\MSVCR90.dll
Report Id: b37b5e67-404a-11e0-b69c-00155d2fb513

O mesmo arquivo EXE funciona no Windows 7 e no Windows XP, então acredito que seja um componente ausente.

Alguma idéia?

Isso não parece ser um problema exclusivo do Windows Server 2008. Acabei de testar no Windows XP e recebi o mesmo erro (tenho outras caixas do Windows XP em que funcionou).

    
por Peter Mortensen 24.02.2011 / 20:33

2 respostas

2

O código de exceção 0xc0000417 é STATUS_INVALID_CRUNTIME_PARAMETER. Parece que um parâmetro inválido foi passado para uma função de tempo de execução C.

Eu lançaria o aplicativo em um depurador, com WinDBG ou VS, se você o tiver instalado nesta máquina. Defina o depurador para quebrar todas as exceções de primeira chance (ou você pode adicionar esse código de exceção diretamente e interrompê-lo apenas nessa exceção) e, quando atingir a exceção, examine a pilha de chamadas. Use o servidor público de símbolos da Microsoft para resolver símbolos (ele terá os símbolos da biblioteca do VS 2008 CRT). Tenha o .pdb para o seu .exe presente ou no caminho de busca do símbolo.

Se os quadros do seu módulo estiverem em qualquer lugar da pilha de chamadas, clique duas vezes no primeiro, começando de cima para baixo. Verifique para ver qual função de tempo de execução C está sendo chamada.

    
por 24.02.2011 / 20:57
0

Este não é um problema de biblioteca ausente, mas as informações fornecidas não são suficientes para começar a diagnosticar o problema. Tente executar o programa em um depurador e ver onde ele falha. Muito provavelmente, o programa ou a biblioteca que você está usando é incompatível com o Windows 7 - isto é, faz algumas suposições ruins que nunca foi permitido fazer, resultando em falhas quando essas suposições acabam não sendo verdadeiras no Win7.

Se você não tiver o código-fonte, tente o assistente de compatibilidade (clique com o botão direito do mouse em exe - > solucione a compatibilidade). Se isso não ajudar, entre em contato com o fornecedor e peça que corrijam o bug no programa.

    
por 24.02.2011 / 20:41

Tags