MSVCR100D.dll umgehen?

Dampfhammer

Grünschnabel
Hallo,
ich hoffe, ich bin hier im Forum richtig.

Und zwar benutze ich den Visual C++ 2010 Express Compiler.
Wenn ich die Programme an andere weitergeben will, benötigen sie die "MSVCR100D.dll".
Kann man dies in den Einstellungen von Visual C++ ändern, dass diese DLL nicht mehr benötigt wird?
Sowas ähnliches hatte ich mal bei Rad Studio (hatte den mal als Test). Dort wurde eine DLL für Multithreading benötigt. Ist es sowas ähnliches auch bei VC++?

MfG
 

Dampfhammer

Grünschnabel
Ok, einen 4,8MB Download an ein Programm dran zu heften, was nichtmal 40KB groß ist, wäre etwas... naja...

So wie ich das jetzt verstanden habe, muss ich in jedem Fall die DLL dazu ausliefern bzw. dieses Redistrutable Package muss auf dem jeweiligen Computer installiert sein. (Jetzt weiß ich auch, weshalb das bei den ganzen Spielen immer mit installiert wird :) )
Die Express-Variante bietet leider nicht die richtige Möglichkeit. Naja, werde es dann mit einem anderen Compiler mal versuchen.

Vielen Dank

MfG
 
Zuletzt bearbeitet:

deepthroat

Erfahrenes Mitglied
Ok, einen 4,8MB Download an ein Programm dran zu heften, was nichtmal 40KB groß ist, wäre etwas... naja...

So wie ich das jetzt verstanden habe, muss ich in jedem Fall die DLL dazu ausliefern bzw. dieses Redistrutable Package muss auf dem jeweiligen Computer installiert sein. (Jetzt weiß ich auch, weshalb das bei den ganzen Spielen immer mit installiert wird :) )
Genau das ist der Punkt. Höchstwahrscheinlich ist die Laufzeitumgebung auf dem Zielcomputer bereits installiert. Und selbst wenn nicht und derjenige es für dein Programm erst noch installieren muß, ist die Wahrscheinlichkeit hoch, das derjenige es früher oder später auch für andere Programme benötigen wird.

Es ist eine einmalige Sache, für weitere Programme bzw. Programmversionen muß nicht jedesmal die komplette Laufzeitumgebung mitgeschleppt werden.

Dir sollte auch klar sein, das bei Verwendung der statischen Laufzeitbibliothek die generierte .exe um einiges größer sein wird (da die Laufzeitumgebung quasi mit in das Programm eingebettet wird).
Die Express-Variante bietet leider nicht die richtige Möglichkeit. Naja, werde es dann mit einem anderen Compiler mal versuchen.
Ich weiß nicht ob das mit der Express Variante möglich ist, aber normalerweise würde man einfach einen Installer generieren, der die fehlenden Komponenten automatisch runterlädt. Du könntest alternativ zum MS Setup Tool auch NSIS verwenden.

Gruß
 

Dampfhammer

Grünschnabel
So, ich habs grade mal einem Kumpel geschickt, der das Package wirklich installiert hat.
Bei ihm klappt es auch nicht, also die Fehlermeldug bezüglich der fehlenden DLL erscheint immernoch.

Einen Installer für solche winzigen Programme zu machen, die eigl nur aus einer .exe bestehen, scheint mir auch etwas... naja...

Aber vielen Dank! Hab jetzt auch was dazu gelernt. :)

MfG
 

MCoder

Erfahrenes Mitglied
Hallo,

endet der DLL-Name mit 'D' dann ist es die Debug-Variante und die ist im Redistributable Package natürlich nicht enthalten. Lies nochmal den ersten Satz der Antwort von Matthias Reitinger.

Gruß
MCoder
 

deepthroat

Erfahrenes Mitglied
Einen Installer für solche winzigen Programme zu machen, die eigl nur aus einer .exe bestehen, scheint mir auch etwas... naja...
Das kommt auf die Zielgruppe an.

Wenn DAUs Teil deiner Zielgruppe sind, dann willst du denen nicht sagen, das sie irgendwo erst was runterladen und installieren müssen...

Wenn du dein Programm nur an einen Kumpel weitergeben willst, dann sag ihm einfach das er die MSVC Redist installieren muss. Das ist dann geringerer Aufwand.

Gruß
 

Dampfhammer

Grünschnabel
Die MSVCR100D.dll wird immer benötigt, egal, ob ich auf Debug oder Release gestellt habe (eingestellt hab ich das passende auch, bzw. alles durchversucht).

Habs mal mit Dev-C++ versucht. Da sind die Programme um einiges größer (das 10-fache ca.) und benötigen dann keine DLL. Also für mich nehme ich dann VC++ und wenn das Programm dann fertig ist, lass ich das durch Dev-C++ durchlaufen. :)


Edit: GARR! Ok, es funktioniert doch mit VC++. Ich war so blöd und habe die Dateien immer aus dem Ordner mit dem Namen Debug geholt... natürlich waren da immer nur die Dateien drin, die rausgekommen sind, als ich den Debug-Modus an hatte... In einem anderen Ordner waren dann die release-Dateien... also es funktioniert jetzt auch ohne zusätzlichen Download.

Vielen Dank an euch zwei

MfG
 
Zuletzt bearbeitet: