172 votes

L'application n'a pas pu démarrer correctement (0xc000007b)

J'ai une application client/serveur qui j'ai été en développement sur un seul PC. Maintenant, il a besoin de deux ports série, j'ai donc emprunté un PC d'un ami.

Quand j'ai créer mon application et essayez d'exécuter ou déboguer (que ce soit dans le Delphi IDE ou du gestionnaire de Fichiers de Windows), c'erreurs "L'application n'a pas pu démarrer correctement (0xc000007b)".

Google n'apporte pas beaucoup, mais semble indiquer que ce n'est rien Delphi spécifique et se produit avec d'autres applications. Il semble être causé par une remise en 32 bits DLL à partir d'un 64 bits app ou vice versa.

  • les deux Pc sont sous Windows 7, 64 bits
  • les deux ont Delphi Xe2 starter edition qui ne peut gérer 32 bits
  • L'application fonctionne très bien sur mon PC, mais pas sur de mon ami
  • D'autres Delphi applications s'exécutent très bien sur l'ami de mon PC

Quelqu'un peut-il me donner un indice quant à la façon de suivre cela?

137voto

mox Points 3076

Pour commencer, je vous suggère afin de vérifier si il y a un problème entre votre application et ses dépendances à l’aide de l’outil dependency walker

56voto

David Heffernan Points 292687

Une dépendance de temps de chargement n’a pas pu être résolue. La meilleure façon de déboguer c’est d’utiliser L’outil Dependency Walker. Utilisez l’option de profil pour obtenir une sortie de diagnostic de la procédure. Cela permettra d’identifier le point de défaillance et devrait vous guider vers une solution.

La cause la plus fréquente de cette erreur essaie de charger un DLL de 64 bits dans un processus 32 bits, ou vice versa.

12voto

Alex.kononov Points 51

C’est une dll manquante. Éventuellement, votre dll qui fonctionne avec les ports com ont une dépendance dll non résolue. Vous pouvez utiliser l’outil dependency walker et débogueur windows. Vérifier l’ensemble de la bibliothèque mfc, par exemple. En outre, vous pouvez utiliser nrCommlib - c’est grands composants pour travailler avec les ports com.

12voto

unxnut Points 4039

J'ai essayé toutes les choses que spécifié ici et encore trouvé une autre réponse. J'ai dû compiler mon application avec Dll 32 bits. J'avais construit les bibliothèques à la fois 32 bits et 64 bits, mais a mon PATH ensemble de 64 bits des bibliothèques. Après j'ai recompilé mon application (avec un certain nombre de changements dans mon code) j'ai eu cette terrible erreur et a lutté pendant deux jours. Enfin, après avoir essayé un certain nombre d'autres choses, j'ai changé d' PATH d'avoir les Dll 32 bits avant le 64-bit Dll (ils ont le même nom). Et cela a fonctionné. Je suis juste de l'ajouter ici par souci d'exhaustivité.

5voto

mitchfish36 Points 391

J’ai eu récemment un problème où je développais une application (qui utilise un port série) et cela a fonctionné sur toutes les machines que je l’ai testé sur mais quelques personnes recevaient cette erreur.

Il s’avère que toutes les machines que l’erreur s’est produite sur couraient Win7 x64 et jamais une fois avait été mis à jour.

Lançant une mise à jour de Windows, toutes les machines fixes dans mon cas particulier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X