2017-10-16 25 views
0

J'essaie de lancer l'application mfc qui peut exécuter sans installer Visual Studio 2015. Tout d'abord, lorsque je suis sur google, cela a suggéré que je peux exécuter comme ci-dessus en installant vC++ paquet redistribuable. J'ai donc installé des paquets mais ça ne marche pas. Et j'ai reçu le message d'erreur. Le message est comme - "Le programme ne peut pas démarrer en raison de manquant mfc140ud.dll ...."Comment faire pour exécuter l'application MFC sur tous les pcs

Deuxièmement, quelqu'un a dit que l'application de libération au lieu du mode de débogage peut être exécuté sans studio visuel. J'ai donc compilé l'application en mode release, puis je n'ai pas reçu le message d'erreur mais il n'est pas exécuté. Quel est le problème avec ça? Que puis-je faire?

+0

*** Le programme ne peut pas démarrer en raison de l'absence de mfc140ud.dll *** Vous n'êtes pas autorisé à exécuter une version de débogage sur une machine sur laquelle Visual Studio n'est pas installé. C'est contre la licence de Visual Studio. C'est la raison pour laquelle le redistribuable n'a pas de DLL de débogage. – drescherjm

+0

Merci de votre attention. Oui, vous avez raison. Puis-je utiliser release build au lieu de build debug sur une machine sur laquelle Visual Studio n'est pas installé? –

+0

Oui bien sûr. Les fichiers binaires de publication sont autorisés sans Visual Studio. – drescherjm

Répondre

2

Vous distribuez une version DEBUG de votre application. Vous pouvez dire que par le nom de la DLL, il dit qu'il ne peut pas trouver. Le suffixe "d" de "mfc140ud.dll" indique qu'il recherche la version DEBUG des bibliothèques MFC. Je ne pense pas que le redistribuable contient la version de débogage. Il ne devrait pas non plus. Essayez de libérer une version RELEASE à vos clients.

+0

Merci, Joe. En fait, j'ai essayé la version finale, mais cela ne fonctionne pas. Ce que je dis, c'est que l'application n'est pas exécutée. –

+0

Eh bien, cela rend un peu plus difficile. Évidemment quelque chose échoue sans un message d'erreur. À ce stade, vous avez plusieurs façons de le comprendre. L'one-way est d'obtenir une copie du vérificateur de dépendances de Windows, l'exécutez sur l'ordinateur de client et chargez votre application libérée là et voyez si elle indique n'importe quelles DLL sont manquantes. Vous pouvez l'obtenir ici: http://www.dependencywalker.com/ Si le problème est manquant DLL, cela vous dira tout de suite – Joe

+0

Une autre approche (en supposant que ce n'est pas une DLL manquante) serait d'ajouter un peu temporaire enregistrement du code dans votre application Juste après le démarrage (le plus tôt possible), demandez à votre code d'ouvrir un fichier texte dans "C:/temp" ou quelque chose et d'écrire une ligne de texte. Si vous exécutez votre version sur le client et que vous obtenez le fichier, vous savez au moins qu'aucune DLL implicitement chargée n'est manquante. – Joe

0

Votre application ne fonctionne pas sur un autre PC car elle est la version de débogage, compilant pour libérer et distribuer sur un autre PC ayant le paquet redistribuable visual studio.

Si vous voulez que votre application s'exécute pas selon le mfc140u.dll vous pouvez simplement lier votre application avec MFC. Ceci est facilement accompli en allant dans les propriétés de votre projet.

Project properties, General, Use of MFC

Votre exe application sera plus grand, mais vous ne serez pas avoir à se soucier de ce genre d'erreurs plus. Veuillez noter que bien que cette méthode fonctionne également sur le débogage, mieux vaut ne pas distribuer le code de débogage sur d'autres machines pour un certain nombre de raisons.