Verwendung von *.lib Dateien



  • Hallo,

    in der MSDN fand ich folgenden Eintrag:
    http://msdn.microsoft.com/en-us/library/windows/desktop/ms686923(v=vs.85).aspx

    Dabei haben sich für mich zwei Fragen ergeben:
    1.
    In dem Beispiel wird weder der Name der *.lib, noch eine Header Datei eingebungen. Woher weiss der Linker nun welche Datei er verwenden soll. Ich nehme an dass sich die *lib Datei im Programmverzeichnis befinden muss. Dort könnte ja auch eine andere mit gleichen Funktionsnamen sein!?

    Wie es der Zufall will, habe ich eine DLL und die dazu passende LIB. Was mir fehlt sind die genauen Funktionsdeklarationen. Wie kome ich an diese heran um die DLL korrekt anzusteuern (eine Doku habe ich leider nicht).
    Kann man evtl. eine Header Datei generieren?

    Gruß Thorsten



  • Zunächst mal ist die ganze Frage höchst windows-spezifisch; auf anderen Systemen funktioniert das in aller Regel mit einer einzelnen Bibliotheksdatei. Eigentlich bist du also hier im falschen Forum.

    Der Header ist im konkreten Beispiel nicht notwendig, weil sein Inhalt direkt in die Sourcen geschrieben wurde. Üblicherweise würde die

    extern "C" int __cdecl myPuts(LPWSTR);   // a function from a DLL
    

    -Zeile in einem Header versenkt und dieser per #include eingebunden, womit man den gleichen Effekt erreicht.

    Die .lib-Datei musst du in den Projekteinstellungen als Linkereingabe angeben. Sie muss in einem dem Compiler als Bibliotheksverzeichnis bekannten Verzeichnis liegen. In ihr befinden sich Stub-Funktionen, die die Funktionen der DLL dynamisch laden und ausführen.

    Aus einer DLL einen Header zu rekonstruieren ist nicht möglich. Wende dich an den Hersteller der DLL.


Anmelden zum Antworten