Win7+VS2013 C Code compiliert - exe liefert MSVCR120D.dll missing in "plain" Windows ???

B

boss3D

Guest
Hi!

Der Titel beschreibt mein Problem schon in einer Zeile ...
Ich habe unter Windows 7 in Visual Studio ein kleines C Programm geschrieben und compiliert, und die kleine exe lässt sich wunderbar ausführen. Dann wollte ich das Teil auch auf einem anderen Windows Rechner testen und habe dann, da ich nur einen physischen habe, kurzerhand die Windows 10 Technical Preview in einer VM installiert. Sonst nichts weiter, keine Zusatzsoftware, gar nichts. Tja, und beim Ausprobieren meiner exe in diesem System kriege ich folgenden Error:

Capture.PNG

Meine google Recherche hat mir dann zig Beiträge geliefert, wo empfohlen wird, bei dem Problem die "Visual C++ Redistributable Packages for Visual Studio 2013" zu installieren. Mein Problem gelöst hat das aber leider auch nicht.
Und ich will ja auch haben, dass meine exe auch auf einem völligen "plain" Windows einwandfrei lauffähig ist, ohne, dass dort irgendwelche Developer Tools oder speziellen Treiber installiert sein müssten.

BTW habe ich auch eine ganz simple HelloWorld.exe im "plain" Windows ausprobiert, die den selben dll Error liefert. An meinen Codes wird's also nicht liegen. Oder anders gesagt: Muss man in seinem Code irgendwas hinzufügen, damit dieser auch als exe lauffähig ist, wenn Visual Studio nicht installiert ist?

Danke für baldige Antworten!
 
Statisch compilieren (große exe, alles drin) vs. dynamisch compilieren (kleine exe, dlls werden benötigt, aber die kann man im Zweifel dazulegen).
 
Vielen Dank, wieder was gelernt. :daumen:

Bin mir zwar nicht 100 %ig sicher, ob ich's im VS richtig gemacht habe, aber nachdem ich unter 'Configuration Properties > C/C++ > Code Generation > Runtime Library' von "Multi-threaded DLL (/MD)" zu "Multi-threaded (/MT)" umgestellt und danach meinen Code neu compiliert habe, läuft die exe jetzt auch unter "plain" Windows (10 Technical Preview). Auch ist die exe in der Tat um das Fünffache größer geworden, wobei wir uns zwar immer noch im KB-Bereich bewegen, aber der Unterschied ist deutlich.

^^ Vielleicht kannst du das bitte noch für die Allgemeinheit bestätigen (oder berichtigen), dass (wie) man in VS wirklich so zwischen static und dynamic compiling wechselt?!
 
Wenn das ein "offizielles" Projekt sein soll, würde ich von dem statischen Linken der MSVCRT abraten. Die hat ab und an mal Sicherheitslücken und bei statischem Linken werden die natürlich nur gepatcht, wenn du die Exe neu kompilierst und verteilst. In der Regel ist das notwendige Redist Kit eh schon durch andere Programme installiert, ansonsten muss man es halt manuell nachinstallieren.
 
Zuletzt bearbeitet:
Wenn das ein "offizielles" Projekt sein soll, würde ich von dem statischen Linken der MSVCRT abraten. Die hat ab und an mal Sicherheitslücken und bei statischem Linken werden die natürlich nur gepatcht, wenn du die Exe neu kompilierst und verteilst. In der Regel ist das notwendige Redist Kit eh schon durch andere Programme installiert, ansonsten muss man es halt manuell nachinstallieren.
Dem ist nichts mehr hinzuzufügen. So ist es ;)
 
Zurück