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..?


  • Mod

    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.


  • Mod

    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.


Log in to reply