2010-07-31 9 views
3

Je reçois cette erreur lorsque j'essaie de démarrer un programme que j'ai créé en C++. Cela fonctionne bien sur mon autre ordinateur (XP SP3 32 bits) mais pas sur ma version Windows 64 bits. Lorsque je lance Dependency Walker sur le programme, il me dit que IESHIMS.dll est manquant, mais il est là dans le dossier Internet Explorer de la version 32 et 64 bits .."L'application n'a pas réussi à s'initialiser correctement (0xc000007b)."

Quelqu'un peut-il m'aider avec cela?

Répondre

16

Le code d'erreur est STATUS_INVALID_IMAGE_FORMAT, "Mumble est soit pas conçu pour fonctionner sous Windows ou contient une erreur. Essayez d'installer le programme en utilisant à nouveau le support d'installation d'origine ou contactez votre administrateur système ou le fournisseur de logiciels pour le soutien. "

Ce qui est un peu dépassé peut-être pour la version 64 bits de Windows, les chances de 90% sont que votre programme 32 bits tente de charger une DLL 64 bits. Il y a beaucoup de choses que Windows fait pour empêcher cela de se produire. La virtualisation du système de fichiers garantit que les chargements de DLL de c: \ windows \ system32 sont redirigés vers c: \ windows \ syswow64, la page d'accueil des DLL 32 bits. La virtualisation du registre garantit que les serveurs COM sont mis en correspondance avec le bit-ness du client COM.

Vous faites quelque chose qui contourne ces contre-mesures. Peut-être avez-vous utilisé SetDllDirectory(). Ou vous avez copié des DLL dans le même dossier que votre EXE. Ou vous espérez que la variable d'environnement PATH du système aide votre programme à trouver la bonne DLL. Quelque chose comme ça, ce n'est pas clair d'après votre question. Il devrait y avoir un enregistrement dans le journal des événements Windows (pas sûr à 100%). Si tout le reste échoue, l'utilitaire ProcMon de SysInternals peut vous montrer quel fichier il essaie de charger.

+1

Hmm okay. Eh bien, je vois que j'ai installé la version 64 bits de MySQL .. Je ne sais pas si cela serait le problème car il y a beaucoup plus de DLL chargées, mais bien sûr le programme essaie de charger les pilotes 64 bits de MySQL. Espérons que la version 32 bits ne sera pas en conflit avec la version 64 bits ..! – lordstyx

+0

Oui, ça va le faire. –

+0

Merci beaucoup! C'est corrigé maintenant. – lordstyx