dll datei wird nicht gefunden



  • Hi,

    ich hab aus der Uni Code zum öffnen von Tiff Dateien bekommen.

    Im Code wird GnuWin32 und boost_1_44_0 verwendet. Hab erstmal beides runtergeladen und instaliert.

    Anschliesend in den Projekteinstellungen->VC++Verzeichnisse:
    bei Ausführbare Verzeichnisse: die GnuWin32\bin eingebunden (gibts bei Boost nicht)
    bei Include Verzeichnisse: die entsprecheneden \include der beiden Packete
    bei Bibliothecksverzeichnisse: die entsprechenden \libs der beiden Packete

    unter ->Linker->Allgemein->Zusätzliche Bibliotheksverzeichnisse: auch die entsprechendne \lib Verzeichnisse von den Packeten

    und unter ->Linker->Eingabe->Zusätzliche Abhängigkeiten noch libtiff.lib angegeben.

    Damit hab ich die Fehlerausgabe bzgl der Verlinkung behoben, ich seh auch das Konsolenfenster aufgeheb, dann kommt aber eine Fehlermeldung, das die libtiff3.dll nicht vorhanden ist, oder beschädigt ist und ich diese neu installieren soll.

    Die llibtiff3.dll liegt unter GnuWin32\bin Hab ich also unter Ausführbare Verzeichnisse angegeben. Keine Ahnung warum er die Datei nun nicht findet.

    Wenn jemand ne Idee hat, was ich falsch mach, bzw. wo das Problem liegt, dann wäre ich über einen Lösungsvorschlag sehr dankbar.



  • Und wenn du sie testhalber mal ins Projektverzeichnis legst?



  • Ich habs mal als Resource angegeben, hat nichts geholfen.



  • Ich Push den beitrag mal nach oben.
    habe das gleiche Problem wie es hier beschrieben wurde, finde aber keine lösung. vieleicht kann hier jetzt mal jemand weiter helfen



  • Okay, fehler behoben.
    Habe ein windows 7 64bit version und muss daher die *.dll anstelle von System32 in den ordner SysWOW62 speichern
    dann gehts



  • Zur Info, Windows sucht nach folgenden Regeln nach einer DLL:

    Search Order for Desktop Applications

    If SafeDllSearchMode is enabled (Safe DLL search mode is enabled by default), the search order is as follows:

    1. The directory from which the application loaded.
    2. The system directory. Use the GetSystemDirectory() function to get the path of this directory.
    3. The 16-bit system directory. There is no function that obtains the path of this directory, but it is searched.
    4. The Windows directory. Use the GetWindowsDirectory() function to get the path of this directory.
    5. The current directory.
    6. The directories that are listed in the PATH environment variable.

    In der Regel ist es besser DLL's, die nicht unbedingt System-weit verfügbar sein müssen, in den selben Ordner zu packen, in dem die EXE-Datei liegt (Stichwort "DLL Hell").

    BTW: Falls Du mal wieder Probleme mit einer "fehlenden" DLL haben solltest, würde ich den Dependency Walker empfehlen 😉


Log in to reply