Fehlende DLLs? Was kann ich tun?



  • Hallo,

    ich habe ein Problem mit dem ich wirklich nicht mehr weiterkomme. Daher wende ich mich an die Community und hoffe dass vielleicht jemand weiß, was ich tun kann. Gleich im Voraus vielen Dank für eure Bemühungen!

    Ich habe vor einiger Zeit ein Projekt in Visual Studio 2008 erstellt. Dieses wurde dann für Visual Studio 2010 konvertiert und funktionierte auch da noch problemlos (Windows 7 x64). Ich musste dann mein System formatieren und habe wieder Windows 7 x64 installiert und arbeite auch wieder Visual Studio 2010. An sich hat sich also an der Umgebung nichts geändert. Auch die Pfade meines Projekts sind identisch geblieben. Mein Projekt kompiliert auch nach wie vor, beim Programmstart kommt dann jedoch eine kritische Fehlermeldung:

    Die Anwendung konnte nicht korrekt gestartet werden (0xc0150002).

    Ich habe daraufhin den Tipp bekommen, mit Dependency Walker nach fehlenden DLLs zu suchen. Dieser meldet mir folgende Konflikte:

    - MSVCP80D.DLL not found
    - MSVCR80D.DLL not found
    - GPSVC.DLL not found
    - IESHIMS.DLL not found
    - VERSION.DLL no DOS or PE signature found. file is not a valid 32 or 64 bit Windows module

    Ich finde mit Google einige Suchergebnisse zu MSVCP80.DLL und MSVCR80.DLL (jeweils ohne das 'D' am Ende des Namens) und fand ein paar Artikel zu fehlenden C Runtimes. Ich habe es, wie dort empfohlen, mit statischem Linken versucht. Das hilft in meinem Fall aber nicht, da die DLLs ja nichtmal auf meinem eigenen System gefunden werden. Das Projekt verwendet das VTK (visualisation toolkit), falls dieser Hinweis weiterhelfen sollte.

    Hat jemand eine Idee oder einen Link, wie ich dieses Problem lösen könnte damit mein Programm wieder läuft?

    Vielen herzlichen Dank für alle Hinweise! 😞
    Gruß Xoric



  • Das D am Schluss bedeutet Debug.
    Builde dein Programm im Release Mode und es werden die DLLs ohne D geladen.

    Dann muss natürlich die entsprechende Runtime installiert sein.
    (Oder Du machst eine Side-by-side Konfiguration.)

    C++ Runtime für VS2008:
    http://www.microsoft.com/downloads/en/details.aspx?familyid=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en

    C++ Runtime für VS2008 SP1:
    http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=5582



  • theta schrieb:

    Das D am Schluss bedeutet Debug.
    Builde dein Programm im Release Mode und es werden die DLLs ohne D geladen.

    Das Problem ist hier wohl eher, das er unter VC2010 die Bibliotheken in den Projekteigenschaften auf die aktuelle ändern sollte.



  • Hallo,

    erst mal vielen Dank euch beiden!

    theta schrieb:

    Das D am Schluss bedeutet Debug.
    Builde dein Programm im Release Mode und es werden die DLLs ohne D geladen.

    Dann muss natürlich die entsprechende Runtime installiert sein.
    (Oder Du machst eine Side-by-side Konfiguration.)

    C++ Runtime für VS2008:
    http://www.microsoft.com/downloads/en/details.aspx?familyid=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en

    C++ Runtime für VS2008 SP1:
    http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=5582

    Ich habe die Runtimes für VS 2008 und die für VS 2008 SP1 beide nachträglich installiert. Leider hat das mein Problem noch nicht gelöst. Die Fehlermeldung beim Programmstart kommt nach wie vor. Dependency Walker bringt auch noch die gleichen Fehlermeldungen. Mein Projekt als Release zu kompilieren hat leider auch keine Auswirkungen.

    asc schrieb:

    Das Problem ist hier wohl eher, das er unter VC2010 die Bibliotheken in den Projekteigenschaften auf die aktuelle ändern sollte.

    Das würde ich gerne probieren. Leider bin ich etwas unerfahren mit VS und weiß nicht wo. Weder bei "Linker / Input / Additional Dependencies", noch in anderen Textfeldern kann ich die besagten DLLs finden um die "80" (bzw "80D") im Namen durch eine "100" ("100D") zu ersetzen.

    Wo kann ich denn diese Einstellung finden?

    Vielen Dank nochmals!
    Gruß Xoric





  • geeky schrieb:

    http://blog.kalmbach-software.de/de/2008/03/05/wie-man-statisch-gegen-die-c-runtime-crt-linkt/

    Hallo geeky,

    Danke für den Link. Leider hilft mir das statische Linken nicht weiter. Mein Problem ist nicht der Transport meiner .exe Datei auf einen anderen Zielrechner, sondern schon auf meinem eigenen fehlen diverse DLLs.

    Falls ich deinen Hinweis falsch verstanden haben sollte entschuldige ich mich.

    Viele Grüße
    Xoric



  • Existieren diese DLLs denn auf deinem Rechner, hast du die da mal gesucht?



  • Suchmaschine: projekt von 2008 zu 2010

    ergibt unter anderen Einträgen:
    http://msdn.microsoft.com/de-de/library/kyb7zzw4.aspx

    Ob es da noch andere Wege gibt? Hab kein VS.

    Eventuell Projekt unter VS 2010 komplett neu, wenn der Aufwand überschaubar bleibt.

    MfG f.-th.



  • DocShoe schrieb:

    Existieren diese DLLs denn auf deinem Rechner, hast du die da mal gesucht?

    Hallo DocShoe,

    die Datei finde ich insgesamt 15 Mal auf meiner Festplatte. Und zwar in folgenden Ordnern:

    C:\Windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_d09154e044272b9a

    Es variiert nur der letzte Ordner mit den vielen Zahlen und Buchstaben.

    Gruß Xoric



  • f.-th. schrieb:

    Suchmaschine: projekt von 2008 zu 2010

    ergibt unter anderen Einträgen:
    http://msdn.microsoft.com/de-de/library/kyb7zzw4.aspx

    Ob es da noch andere Wege gibt? Hab kein VS.

    Eventuell Projekt unter VS 2010 komplett neu, wenn der Aufwand überschaubar bleibt.

    MfG f.-th.

    Hallo f.-th.,

    vielen Dank für den Link. Ich habe die Einstellung gefunden und festgestellt, dass bei mir in Visual Studio 10 nur "v100" und "v90" für Platform Toolset auswählbar sind.

    Ich habe allerdings auch festgestellt, dass die fehlenden DLLs von fremdem Code, den ich in meinem Projekt included habe, benötigt werden. Und den kann ich leider nicht umstellen. Ein neues Visual Studio 10 Projekt zu erstellen hilft auch nicht, da das nur meinen Code beeinflusst. Der fremde Code durch eingebundene DLLs möchte nach wie vor die Visual Studio 8 Runtimes.

    So wie ich das sehe, muss ich also die Visual Studio 8 Runtimes installieren, was ich kürzlich getan habe. Ich finde nun auch die entsprechenden DLLs auf meiner Festplatte (auch wenn der Pfad merkwürdig ist, siehe voriger Post).

    Mein Projekt bringt leider aber immer noch nach dem Starten die obige Fehlermeldung und bricht ab.

    Muss ich noch was tun, damit die DLLs gefunden werden?

    Vielen Dank für eure Hilfe!
    Gruß Xoric



  • Ich kenne deine IDE nicht genug.
    a: Geht da etwas in der Projektverwaltung?
    b: Oder bei den Compiler- oder Linker-Pfaden?

    c: Versuche mal die Dateien, die nicht gefunden werden in den PATH/ die Umgebung aufzunehmen. Musst dann sehen, wenn du dies testest, wie das bei deinem Windows geht. Ob das deine Probleme löst, musst du selbst testen.

    Theoretisch könnte/sollte es da noch andere Wege geben 😃
    Aber leider geben ja die Nutzer, die im Netz nach solchen Lösungen suchen, nicht immer Erfolgsmeldungen. Oder auch die Suchmaschine listet die guten Ergebnisse unter ferner liefen ...

    Hoffe mal das einer der Wege zum Ziel führt
    f.-th.



  • Hallo f.-th.,

    ich kann leider auch noch keine Erfolgsmeldung bringen 😞

    Das Problem bei mir ist, dass der in meinem Projekt verwendete fremde Code wohl mit Visual Studio 8 (= Visual Studio 2005) kompiliert wurde und diese DLLs benötigt.

    Da ich wirklich nicht mehr weiter weiß, habe ich inzwischen sogar Visual Studio 2005 auf meinem Rechner installiert. Die DLLs sind jetzt definitiv vorhanden. Es hat sich aber immer noch rein garnichts geändert - das Programm bringt direkt nach dem Start eine kritische Fehlermeldung (siehe erster Post). Dependency Walker findet die DLLs auch noch nicht.

    Die besagten DLLs sind hier:

    C:\Program Files (x86)\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT
    

    Ich habe diesen Pfad nun sowohl in den Windows Umgebungsvariablen registriert, als auch in meinen Projekteinstellungen in den Libaray Pfaden hinzugefügt.

    Ich bedanke mich trotzdem nochmal herzlich für die vielen Ratschläge. Wenn ich doch noch eine Lösung finde werde ich bescheid sagen.

    Viele Grüße
    Xoric



  • Microsoft könnte auch noch irgendwo anders die fehlenden Infos hinterlegt haben.
    Hab kein aktuelles Windows.

    Wenn du das nachvollziehen willst, will ich nicht hoffen das da alles notwendig ist. Erst bis zu Ende lesen und eventuell noch eine zusätzliche Meinung einholen.

    Alle Visual Studio komplett und gründlich löschen. Dann erst die ältere der benötigten Versionen einspielen und dann erst die aktuelle.

    Ich weiss das dauert, vielleicht kann dir ja jemand einen schnelleren Weg zeigen?

    MfG f.-th.



  • Hallo nochmal,

    das Problem ist jetzt behoben! ich würde gerne beschreiben, was ich zur Lösung des Problems getan hab. Allerdings funktionierte einfach plötzlich ohne weiteres Zutun meinerseits alles. Zwischendurch waren mal ein paar Windows Updates gelaufen, darunter auch ein Sicherheitsupdate für Visual Studio 2005. Vermutlich hat es damit etwas auf sich.

    Im Endeffekt habe ich also mit Dependency Walker nach fehlenden DLLs gesucht. Diese stellten sich mit Google als fehlende C-Runtimes von Visual Studio 2005 heraus. Da das Installieren der Runtimes keinen Effekt brachte, hab ich einfach Visual Studio 2005 installiert. Seit das auf dem neusten Stand ist tut alles.

    Danke nochmals an alle Helfer!
    Wie schön, dass es Foren gibt 🙂

    Viele Grüße
    Xoric



  • Auch bei VS2005 gibts zwei Versionen:
    1. VS2005
    2. VS2005 SP1

    Kann sein, dass Du die VS2005 SP1er Version installiert hast, das aber nicht funktionierte. Beim Installieren von VS2005, kam auch dessen Runtime drauf, danach funktionierte es!



  • EDIT: ich sollte wohl genauer lesen...


Anmelden zum Antworten