Visual Studio 2013 MSVCR110d.dll est manquant

Je ne suis pas vraiment sûr si cela appartient à SuperUser ou StackOverflow, mais cela ne semble pas être un problème de codage, donc je vais courir avec ça.

J'ai commencé à travailler sur un jeu C ++ utilisant Visual Studio 2013 en utilisant FreeGLUT et FreeImage. Je peux le compiler et l'exécuter sur mon ordinateur sans problème, mais lorsque j'essaie de compiler le même code sur mon ordinateur portable, j'ai l'erreur "msvcr110 d .dll est absent de votre ordinateur". Après quoi il y a environ 50% de probabilité que Visual Studio se gèle, et je suis forcé de redémarrer l'ordinateur car le Gestionnaire des tâches ne peut pas arrêter le processus (un autre problème sur lequel je travaille toujours).

Les recherches de Google m'ont dit d'installer Visual C ++ Redistributable 2012, mais cela était déjà installé sur cet ordinateur portable (x86 et x64) et réinstallé (à partir de http://www.microsoft.com/en-us/download/details.aspx ? Id = 30679 ) n'a pas aidé du tout. J'ai également essayé d'installer Visual C ++ Redistributable 2013 (x86 et x64, à partir de http://www.microsoft.com/en-us/download/details.aspx?id=40784 ), mais sans succès. Ces deux liens comportent un téléchargement ARM. Je ne suis pas certain de ce qu'il y a, et je tente d'installer le produit dans un message contextuel. Je ne peux pas l'installer sur cette version de Windows (Windows 8) et je suppose que je n'ai pas besoin de ça .

Dans le dossier C: \ Windows \ SysWow64, je peux voir msvcr110.dll mais pas msvcr110 d .dll. Il semble que la version a été installée, mais pas le débogueur. Je vois msvcr120 d .dll, qui devrait être la version 2013, n'est-ce pas? Donc, Visual Studio 2013 ne devrait-il pas utiliser cela, au lieu de msvcr110 d .dll?

L'exécution d'un projet C ++ HelloWorld standard n'a pas ce problème, alors j'imagine qu'il doit avoir quelque chose à voir avec FreeGLUT ou FreeImage. Cependant, il compile et fonctionne sur mon ordinateur sans problème, donc je crois que tout est codé et lié correctement. J'ai ajouté les répertoires d'inclusion, les répertoires de bibliothèque (tous deux débogés) et j'ai ajouté opengl32.lib et FreeImaged.lib sous forme de dépendances supplémentaires.

L'installation de Visual C ++ Redistributable n'a pas aidé, de même qu'une autre façon de résoudre ce problème? Devrait-il Visual Studio 2013 utiliser msvcr110d.dll ou devrait-il utiliser msvcr120d.dll? Ai-je besoin de cette installation ARM à partir de la page de téléchargement de MSVCR? J'utilise Windows 8 64 bit (tout nouvel ordinateur portable, donc je ne pense pas qu'il y ait des problèmes de corruption). Merci d'avance pour votre aide.

Doug

"L' exécution d'un projet C ++ HelloWorld standard n'a pas ce problème, donc j'imagine qu'il doit avoir quelque chose à voir avec FreeGLUT ou FreeImage " .

Je pense que vous êtes sur la bonne voie. Il semble que FreeGLUT ou FreeImage est compilé en mode débogage, et c'est pourquoi les versions "D" sont demandées. Assurez-vous d'utiliser les compilations de libération de vos dépendances.

Si vous essayez de déboguer à distance (ou peut-être dans d'autres scénarios), vous devrez peut-être modifier le paramètre de la bibliothèque d'exécution à partir de la DLL de débogage multi-thread (/ MDd) -> Multi-threaded Debug (/ MTd).

Vous pouvez le réaliser (en VS2012) en cliquant avec le bouton droit de la souris sur votre projet, en sélectionnant Properties -> C++ -> Code Generation , puis en retirant l'option Runtime Library , et en la modifiant dans l'un des paramètres sans "DLL" (choisissez Votre paramètre selon que vous souhaitez un mode de débogage ou une génération de mode de libération).

J'espère que cela t'aides.