Verschiedene Versionen von C ++ Bibliotheken
-
01-07-2019 - |
Frage
Nach einem einfachen C ++ Projekt mit Visual Studio 2008 auf Vista kompiliert, läuft alles gut auf dem ursprünglichen Vista-Rechner und anderen Vista-Computer. Es ist jedoch mehr als auf eine XP-Box führt zu einer Fehlermeldung zu bewegen. „Die Anwendung konnte nicht gestartet werden, weil die Anwendungskonfiguration falsch ist“
Was muss ich tun, damit meine kompilierten EXE funktioniert auf XP und Vista? Ich hatte das gleiche Problem vor ein paar Monaten, und nur mit einigen Einstellungen Hantieren auf das Projekt es fest, aber ich erinnere mich nicht, welche, die ich geändert.
Lösung
Sie müssen die Visual Studio 2008 Laufzeit auf dem Zielcomputer installieren:
Alternativ könnten Sie auch einen Link die Laufzeit statisch, im Projekteigenschaftenfenster finden Sie unter:
c ++ -> Code Generation -> Runtime Bibliothek und wählen Sie „Multi-Threaded / MT "
Andere Tipps
Sie müssen wahrscheinlich die VC-Laufzeit mit Ihrer Anwendung verteilen. Es gibt eine Vielzahl von Möglichkeiten, dies zu tun. Dieser Artikel von dem Microsoft Visual C ++-Team am besten beschreibt die verschiedenen Möglichkeiten, diese Abhängigkeiten zu verteilen, wenn Sie Visual Studio 2005 oder 2008 verwenden.
Wie im Artikel erwähnt, wenn Sie das verteilbare Installationspaket herunterladen und starten Sie einfach, dass auf dem Client-Rechner, das ist fast immer nicht die optimale Wahl. Es gibt in der Regel bessere Möglichkeiten, um die erforderlichen DLLs wie einschließlich der Merge-Modul zu schließen, wenn Sie über Windows Setup oder App-lokale Kopie verteilen, wenn Sie nur einen ZIP-Ordner verteilen möchten.
Eine weitere Option ist statisch verknüpfen gegen die Laufzeitbibliotheken zu, anstatt sie mit Ihrer Anwendung zu verteilen. Diese Option eignet sich nur für eigenständige EXE-Dateien, die andere DLLs nicht geladen werden. Sie können auch nicht dies mit DLLs, die von anderen Anwendungen geladen werden.
Es ist viel einfachsten ist statisch nach der Laufzeit zu verbinden.
c ++ -> Code Generation -> Laufzeitbibliothek und wählen Sie "Multi-Threaded / MT"
Allerdings bedeutet dies die ausführbare Datei ein paar hundert KByte größer. Dies könnte ein Problem sein, wenn Sie eine große Anzahl von kleinen Programmen installieren, da jeder durch seine eigene Kopie der Laufzeit belastet wird. Die Antwort ist ein Installationsprogramm zu erstellen.
Neues Projekt -> "Einrichtung und Bereitstellung" -> "Setup-Projekt"
Laden Sie die Ausgabe von Ihren Anwendungsprojekten (definierten die DLL-Version der Laufzeit verwendet wird) in das Installer-Projekt und baut es. Die Abhängigkeit von der Laufzeit-DLL wird im Installationspaket bemerkt, enthalten sein und ordentlich und unauffällig an der richtigen Stelle auf dem Zielcomputer installiert ist.