Frage zu VC7 und einer DLL



  • Wofür ist
    msvcr70d.dll
    gut?
    Erst brauchte mein Programm diese DLL nicht (bei einem Kumpel, der die DLL und VC7 nicht hat ging das Programm). Ich habe weiterprogrammiert, auf einmal sagt Windows bei jeden: msvcr70d.dll fehlt. Wieso? Wofür? Debug?



  • Hallo,

    möglicherweise hast du etwas in den Projekt-Einstellungen geändert (oder etwas hinzugefügt, daß das dynamische Linken gegen diese DLL bewirkt), denn msvcr70d.dll ist die DLL-Version der (C-)Laufzeit-Bibliothek. In den Projekt-Einstellungen kann man festlegen, ob die statische Version (dann keine DLL auf Zielsystem erforderlich) oder die DLL-Version der C-Runtime (dann muß die DLL auf dem Zielsystem installiert werden) verwendet wird. Allerdings handelt es sich außerdem um die Debug-Version, die du sowieso nicht weitergeben solltest (wahrscheinlich Debug-Version erstellt?), aber das grundsätzliche Problem besteht auch, wenn du die Release-Version der C-Runtime verwendest, auch hier gilt das obige (nur wenn statisch gelinkt, dann keine DLL erforderlich).

    MfG



  • ➡ bitte verschieben ins MFC/VC++ Forum ⚠

    meine prognose: als du "weiterprogrammiert" hast, hast du auf irgendeine funktion zugegriffen, die in dieser dll gespeichert ist.

    lw



  • Na super, ich programmiere etwas dazu, das halt einfach in dieser DLL versteckt ist, aber wieso nimmt er genau die 70d (d = Debug) ?? Auch auf Release musst diese DLL im Programmordner dabei sein, sonst laufts bei den Andwendern nicht...



  • Dieser Thread wurde von Moderator/in flenders aus dem Forum WinAPI in das Forum MFC mit dem Visual C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hatte das Problem bei wechseln von VC .NET auf VC .NET 2003. Wenn die Projektdateien aktualisiert werden, scheint's Probleme zu geben. Hab das Projekt neu in 2003 erstellt, dann lief's. War allerdings nicht sehr gross 😉 .



  • DLLInfo - MSVCR7d.DLL

    Standardmäßig sind MFC-Projekte darauf eingestellt, die MFC als DLL einzubinden, womit widerum vie VC-Runtime als DLL's eingebunden werden müssen.

    Due kannst diese Einstellung entweder beim Erstelen des projektes ändern, oder nachträglich under Project/Einstellungen:

    Konfigurationseinstellungen - Allgemein - Verwendung von MFC: "Use MFC in a static Library"
    und
    C/C++ - Codeerstellung - Laufzeitbibliothek: Multi-threaded Debug (/MTd, für Debug-Konfiguration, bzw. bzw. Multithreaded (/MT) für release

    70 ist die Version (7.0)

    Noch ein Hinweis: Nach dem üblichen Lizenzvertrag bist du nicht berechtigt, die Debug-Versionen der Laufzeit-DLL's weiterzugeben, und für die Release-Versionen stehen i.A. "Redistributable Packages" zur Verfügung



  • Hallo. Danke, ich habs nun auch gänzlich gerafft. Ich benutze eine Library für alle möglichen Bilder-Formate und diese musste ich anders compilieren (eben auch Multi-Threaded (\MD) ... Das stand auf einer anderen Einstellung. Somit konnte ich auch in meinem Projekt auf MD stellen und nun braucht er (bin mir sehr sicher) die Msvcr70d.dll nicht mehr.

    Danke jedenfalls vielmals,
    Chris


Anmelden zum Antworten