Visual Studio: msvcd100.dll trotz Release-Modus erfordert
-
Hi,
wieso brauche ich auf dem Zielrechner die msvcd100.dll, obwohl ich im Release-Modus laufe? Ich weiß, dass man ja auch im Release-Modus (manchmal) noch Haltepunkte setzen kann (wobei er dafür ja nur ein C++-ASM-Mapping braucht), um zu stoppen. Doch wie kriege ich das weg, um beim Ausliefern diese DLL nicht mitliefern zu müssen?
Ich nutze Visual Studio 2010.
Danke schon Mal
PS: Ach, hat sich erledigt. Er wollte eigentlich die msvcp100.dll, von der ich nicht Mal weiß, was das ist. Weiß hier jemand, wie ich diese dll-Abhängigkeiten wegbekomme? Statisch linken wäre eine Idee, wobei das die exe aufbläht. Aber vll kriege ich auch irgendwas raus..?
-
Evtl. hast Du eine LIB im Debug Mode verwendet.
- Untersuche die EXE mit DEPENDS, ob evtl. eine andere DLL diese Debug-CRT ziehen will.
- Ansonsten setze die Linker Option /VERBOSE und schau welches Modul welche Lib-heranzieht.
- Evtl. ist eine COmpiler Option falsch gesetzt.
-
Okay, das klingt schon Mal nach ein paar Ideen.
Betrifft das nur msvcd100.dll oder auch msvcp100.dll? Das d hab ich jetzt weg, aber ich würde natürlich gerne noch d und p rauskriegen, falls so was überhaupt möglich ist.
-
msvcp100.dll
ist die C++ Runtime (Release Version)! Das p steht für Plus...
[EDIT]
Hier findest Du noch ein paar Infos:
http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx
-
Wofür ist denn dann r?
-
Siehe mein Edit - weiss nicht was das r steht - ist aber die C Runtime.
-
Wenn Du grundsätzlich keine DLLs der Runtime mit ausliefern willst, dann linke statisch gegen die CRT.
BTW: msvcd100.dll? Gibt es doch gar nicht...
Ich habe das im ersten Posting überlesen. Wie heißt die Datei nun?Eine DLL aus der Debug Version würde msvc?100d.dll heißen.