12
votes

L'application n'a pas pu démarrer car msvcp100d.dll n'a pas été trouvée, la réinstallation de l'application peut fonctionner

J'ai googlé sur ceci et réalisé qu'il y a probablement plusieurs causes à cela, donc je vais décrire mon scénario.

Cela se produit lorsque mon application tente de charger un fichier .dll intégré dans une autre version de Visual Studio (2010), si je crée le même projet sur Visual Studio 2008, le fichier DLL se charge tout simplement ...

Je ne sais pas si cela compte, mais la version du fichier DLL Visual Studio 2010 est construite sur Windows 7 X32 et Windows Vista 64 bits est de l'autre côté avec Visual Studio 2008.


2 commentaires

Recompilez votre application en mode "Libération" (plutôt que "Débogage"), puis téléchargez et installez le package redistribuable Visual C ++ 2010 pour l'architecture de processeur appropriée sur la machine cible: X86 , X64 . La machine cible doit avoir la même version du temps d'exécution installé à votre encontre. Dans ce cas, c'est V10.0 (de VS 2010).


Il suffit de consulter les deux liens suivants: http://www.buggymind.com/305 http://msdn.microsoft.com/ko-kr/library/abx4dbyh.aspx J'espère que cela aidera.


3 Réponses :


12
votes

Si vous associez de manière dynamique à l'exécution MSVC, vous devez installer ce temps d'exécution sur chaque machine qui exécutera votre application.

Notez que dans ce cas, vous semblez être liés à la version de débogage de l'exécution, il n'est pas normal de distribuer des applications liées à la version de débogage de l'exécution.


5 commentaires

J'ai changé l'option de génération de code de DLL multithread DLL de DLL à 'DLL multithread


compiler et il n'a pas résolu de problème, je ne sais vraiment pas où dois-je regarder


Est-ce toujours en rapport 100D ou seulement 100 maintenant? Si c'est 100D, vous n'avez pas eu l'option ou de la recompiler tout; Si c'est 100, vous devez obtenir le programme d'installation d'exécution MSVC à partir de votre DVD VS (ou vous pouvez probablement le télécharger) et de l'exécuter sur le système cible.


@ MarkO29 en tant que @RUP dit, et comme je l'ai dit dans ma réponse, vous devez installer l'exécution de la version 10 MSVC sur la machine cible. Vous pouvez télécharger ceci à partir du Web ( Microsoft.com/downloads/fr/... ), ou obtenez-le de votre DVD VS.


Ou vous pouvez simplement les copier de votre machine de développement, C: \ Windows \ System32. La chanson et la danse du cache côte à côte sont finies et faites avec.



7
votes

Si vous ne souhaitez pas distribuer le temps d'exécution, vous pouvez basculer vos options de bibliothèque d'exécution dans Visual Studio (Propriétés -> C / C ++ -> Génération de code -> Bibliothèque d'exécution) de / MD à / MT ou de / MDD à / mtd.

Comme d'autres personnes ont dit, si vous distribuez cette application, vous devez relier de manière dynamique ou statique à la version de version de la version d'exécution, pas la version de débogage.


0 commentaires

2
votes

Juste un petit conseil associé: N'ajoutez aucun fichier * 248d.lib lors de la construction et de l'exécution de la version de version.

Je suivais des conseils de différents blogs, et j'ai accidentellement ajouté accidentellement * 248d.lib ainsi que les fichiers 248.lib. Fondamentalement dans la liaison Entrée Ajouter des dépendances , assurez-vous que vous n'avez pas * 248d.lib de fichiers (ici 248 est ici la version 2.4.8) .

J'ai passé des heures à me demander pourquoi les choses ne fonctionnaient pas dans le mode de sortie avant de me frapper qu'il y a deux copies de fichiers .lib, un * 248 et autres * 248d. Si vous incluez l'un des fichiers D en mode de sortie, vous obtiendrez le problème de la DLL.


0 commentaires