2016-09-28 4 views
2

Also habe ich kürzlich eine VC++ Konsolenanwendung fertiggestellt, an der ich gearbeitet habe, und ich habe sie an einen meiner Freunde geschickt, aber er kann sie nicht öffnen, weil er immer einen Fehler bekommt. Bild und dann zeigt es den Fehler und Sachen, sagt er es kann nicht die Datei MSVCP140D.dll auf meinem Computer Freunde finden, aber wenn ich das Programm es läuft gut starten -Fehlerhafter Image-Fehler beim Ausführen des Programms

Es wird eine Box mit dem Titel Bad eröffnen.

Kann mir jemand sagen, warum er das Programm nicht spielen kann und wie man es repariert?

Antwort

3

Sie haben Ihr Projekt im Debug-Modus erstellt und verwenden die Runtime-Bibliothek Multi-threaded Debug DLL (/MDd).

  • In Visual Studio-Hauptmenü wählen Sie Projekt -> Eigenschaften
  • Gehen Sie auf "Konfigurationseigenschaften" -> C/C++ -> Code Generation
  • In Runtime Library, wählt Multi-threaded Debug (/MTd) und bauen Sie Ihr Projekt .

Alternativ können Sie Ihr Projekt im Releasemodus erstellen, wählen Sie dann Multi-threaded (/MT) Runtime-Bibliothek.

Dadurch wird eine eigenständige ausführbare Datei, die Standard-Windows-Bibliotheken verwendet, werden Sie keine zusätzlichen DLLs mit der * .exe-Datei bereitstellen müssen.

2

Sie müssen Ihr Programm mit dem Microsoft Visual C++ Redistributable-Paket bereitstellen. Das ist MSVCP140D.dll.

Wie user4581301 hingewiesen, die D in MSVCP140D.dll bedeutet "Debuggen". Sie sollten keine Debug-fähige ausführbare Datei senden. Es erleichtert Reverse Engineering, Hacking und andere Modifikationen. Sie sollten stattdessen einen Release-Build kompilieren und mit dem Redistributable versenden.

+1

Schließen. In MSVCP140D.dll bedeutet das D, dass OP einen Debugbuild kompiliert. OP muss den Release-Build und möglicherweise das reditsributable-Paket kompilieren und versenden. – user4581301

0

Nun müssen Sie eine Sache (die einfache Lösung) tun, gehen Sie einfach zu Ihrem system32 Verzeichnis auf System, in dem Sie den Code aufgebaut haben und die Datei MSVCP140D.dll herausfinden, setzen Sie es mit Ihrer ausführbaren Datei (.exe) und geben es zu Ihrem Freund, und sagen Sie ihm, die DLL in demselben Ordner wie die exe zu halten.

MSVCP140D.dll (verteilbares Paket) ist eine der Laufzeitabhängigkeiten, die Sie zum Ausführen Ihrer Anwendung bereitstellen müssen.

Jetzt wird es installiert werden. Oder Sie können die DLL unter Zielsystem auf system32 kopieren und dann versuchen.

Aber Sie sollten nicht die debug Build bereitstellen, wenn Sie es dem Client geben, sollten Sie die Release-Version davon bereitstellen.

Verwandte Themen