2017-10-16 2 views
0

Ich versuche, die MFC-App, die ohne Visual Studio 2015 ausführen ausführen kann. Erstens, wenn ich auf Google bin, schlug dies vor, dass ich wie oben durch die Installation von VC++ ausführen kann verteilbares Paket. Also ich habe Pakete installiert, aber es funktioniert nicht. Und ich habe die Fehlermeldung erhalten. Die Nachricht ist wie - "Das Programm kann wegen fehlenden mfc140ud.dll nicht starten ...."Wie MFC-Anwendung auf jedem PC

Zweitens sagte jemand, dass die Release-App statt Debug-Modus ohne Visual Studio ausgeführt werden kann. So kompilierte ich die App im Freigabemodus, dann habe ich die Fehlermeldung nicht erhalten, aber es wird nicht ausgeführt. Was ist daran falsch? Was kann ich tun?

+0

*** Das Programm kann wegen fehlender mfc140ud.dll nicht gestartet werden *** Sie dürfen keine Debug-Erstellung auf einem Computer ausführen, auf dem Visual Studio nicht installiert ist. Dies ist gegen die Lizenz von Visual Studio. Aus diesem Grund verfügt das Redistributable nicht über Debug-DLLs. – drescherjm

+0

Vielen Dank für Ihre Aufmerksamkeit. Ja, du hast Recht. Kann ich Release Build statt Debug Build auf einem Computer verwenden, auf dem Visual Studio nicht installiert ist? –

+0

Ja natürlich. Release-Binärdateien sind ohne Visual Studio zulässig. – drescherjm

Antwort

2

Sie verteilen eine DEBUG-Version Ihrer Anwendung. Das kann man an dem Namen der DLL erkennen, die besagt, dass sie nicht gefunden werden kann. Das Suffix "d" von "mfc140ud.dll" zeigt an, dass es nach der DEBUG-Version der MFC-Bibliotheken sucht. Ich denke nicht, dass das Redistributable Debug-Version enthält. Noch sollte es.

Versuchen Sie, einen RELEASE-Build für Ihre Kunden freizugeben.

+0

Danke, Joe. Eigentlich habe ich Version versucht, aber es funktioniert nicht. Was ich sage ist, dass die App nicht ausgeführt wird. –

+0

Nun, das macht es ein bisschen schwieriger. Offensichtlich scheitert etwas ohne eine Fehlermeldung. In diesem Stadium haben Sie ein paar Möglichkeiten, um es herauszufinden. Eine Möglichkeit besteht darin, eine Kopie der Windows-Abhängigkeitsprüfung zu erhalten, sie auf dem Clientcomputer auszuführen und Ihre veröffentlichte Anwendung dort zu laden, um festzustellen, ob DLLs fehlen. Sie können es hier bekommen: http://www.dependencywalker.com/ Wenn das Problem DLLs fehlt, das wird Ihnen sofort sagen – Joe

+0

Ein anderer Ansatz (vorausgesetzt es ist keine fehlende DLL) wäre, einige temporäre hinzufügen Logging-Code in Ihre App. Gleich nach dem Start (so schnell wie möglich) öffne deinen Code eine Textdatei in "C:/temp" oder etwas und schreibe eine Textzeile aus. Wenn Sie Ihre Version auf dem Client erstellen und die Datei erhalten, wissen Sie zumindest, dass keine implizit geladenen DLLs fehlen. – Joe

0

Ihre Anwendung läuft nicht auf einem anderen PC, weil es die Debug-Version ist, Kompilierung zu veröffentlichen und auf anderen PC mit dem Visual Studio Redistributable-Paket zu verteilen.

Wenn Sie möchten, dass Ihre Anwendung nicht abhängig von der mfc140u.dll ausgeführt wird, können Sie Ihre Anwendung einfach mit MFC statisch verbinden. Dies wird leicht erreicht, indem Sie in Ihre Projekteigenschaften gehen.

Project properties, General, Use of MFC

Ihre Anwendung exe wird größer sein, aber Sie müssen nicht mehr mit dieser Art von Fehlern stören. Bitte beachten Sie, dass diese Methode zwar auf Debug funktioniert, Sie aber aus verschiedenen Gründen keinen Debug-Code auf anderen Rechnern verteilen.

Verwandte Themen