2009-01-08 10 views
0

Je suis d'idées pour expliquer pourquoi mon application a soudainement cessé de travailler - peut-être l'esprit collectif de la communauté SO peut aider ...
Contexte:
J'ai une grande application a travaillé jusqu'à récemment. Maintenant quand jamais j'essaye et l'exécute j'obtiens l'erreur "L'application n'a pas pu s'initialiser correctement (0xc0000005)"
Cela arrive avant l'application obtient _tmain(). Cela se produit dans les versions release et debug. J'ai essayé de nettoyer et de reconstruire les projets et j'ai redémarré mon PC.App ne fonctionne plus - des idées

La pile d'appels montre que les entrées pour kernel32.dll et ntdll.dll
La fenêtre de sortie montre:

 
First-chance exception at 0x00532c13 in a.exe: 0xC0000005: Access violation reading location 0xabababdb. 
First-chance exception at 0x7c964ed1 in a.exe: 0xC0000005: Access violation. 
Unhandled exception at 0x7c964ed1 in a.exe: 0xC0000005: Access violation. 

Toutes les idées?

Edit:
Ok - a trouvé le problème - il a été dll liée
mon application utilise partagées dll A.dll et b.dll (et d'autres)
A.dll à peine tous les changements (et utilisations b.dll)
b.dll a été modifié par un autre développeur ce matin et a.dll n'a pas été reconstruit.

Depends.exe n'a pas montré de dll manquants, mais pas a.dll fonctionne plus en raison du changement de B.dll

+2

ouais, je peux penser à une raison. Un meilleur titre de question :) –

+0

Vous avez absolument besoin d'un meilleur titre –

Répondre

1

Il y a probablement un fichier .dll qui est requis pour l'application, mais il n'est pas trouvé, ou l'accès n'est pas autorisé.

Utilisez-vous des dll, ou peut-être une bibliothèque d'exécution?

+0

Bon point - J'ai regardé l'exe dans Depends et ça a l'air correct – hamishmcn

1

Vérifiez les autorisations? Peut-être une mise à jour de Windows a foiré avec le système

+0

Cela ne semble pas être lié à des permissions – hamishmcn

1

+0

Ouais, je l'avais déjà fait par le passé, mais dans ce cas il n'y a pas eu de mises à jour de Windows – hamishmcn

2

Ce lien semble décrire trois questions comme causes possibile:

  • Data Execution Prevention
  • pilote ou mise à jour système
  • défectueux Ram

détails ici: http://www.updatexp.com/0xC0000005.html

laissez-nous savoir si vous trouvez la raison

1

Avez-vous peut-être utilisé la suite SysInternals pour examiner ce qui se passe? Cela vous aiderait à repérer tout échec si, par exemple, il accède à un fichier, une DLL ou une entrée de registre et que l'accès est refusé.

Votre programme fonctionne-t-il correctement si vous l'installez ailleurs? (un autre ordinateur) Cela pourrait aider à isoler le problème.

--Vous pouvez vérifier le journal des événements (application, système, etc.) pour voir si quelque chose est consigné à propos du problème.

--Une autre chose ...Depuis que vous avez mis à jour Tortoise, il utilise peut-être une DLL que votre application utilise également. Vous devriez vérifier pour voir si les versions de DLL ont changé. Vous pouvez désinstaller cette version plus récente de Tortoise. Ou plus drastique, essayez une restauration du registre. (http://support.microsoft.com/kb/322756) Ou si vous utilisez Ghost/Acronis restaurer une image antérieure de votre système d'exploitation.

Enfin, je vous recommande d'essayer d'être très précis pour savoir ce qui ne va pas. J'ai mentionné quelques mesures drastiques dans la résolution du problème, mais j'espère que vous pouvez spécifiquement (c'est-à-dire DLL ver x provoque le problème) le réduire. Sinon, il serait puant pour un client ou un utilisateur de votre application de courir dans la même chose.

+0

Toutes les bonnes idées, merci – hamishmcn

Questions connexes