DLL's eines dsp Projektes.



  • Hallo Leute,

    welche Möglichkeiten gibt es eine DLL in einem VC++ Projekt zu laden? C und ActiveC DLL's. Kann man vielleicht im Projektfile direkt eine DLL verankern, so dass man sie nicht mehr extra laden muß.
    Loadlibrary und freelibrary habe ich früher immer unter C benutzt.

    Ich frage deshalb weil ich auflisten will welche Komponenten von einem Projekt benutzt werden.

    Viele Grüße

    Mike



  • Du könntest die DLL´s Statisch einbinden. Ansonsten würde mir nur der weg über LoadLibary einfallen...



  • Hallo guenni81,

    meinst Du mit statischem Einbinden das Einkompilieren in die Exe? Ich habe mal gegoogelt: Sowas soll angeblich nicht gehen. Oder meinst Du etwas anderes?

    Wie bindet man unter C++ ActiveX DLL's ein? Im Internet finde ich zB CoCreateInstance zum laden von ActiveX Komponenten. Gibt es vielleicht noch andere Methoden oder Schlüsselwörter?

    Was ich machen möchte: Den ganzen Sourcetree aus VSS ausloggen und den gesamten Sourcecode nach Abhängikeiten durchsuchen. zB alle Zeilen heraussuchen wo LoadLibrary oder CoCreateInstance drin steht. Die Entwickler benutzen fast nur MFC, es sind aber auch ein paar plain C(++) Projekte dazwischen.

    Viele Grüße
    Mike



  • Oft wird einer DLL noch eine Lib mitgegeben. Diese Lib linkt man zu seinem Programm dazu und dadurch wird bei Programmstart automatisch die DLL geladen.
    Das entspricht wohl ziemlich genau deinem "im Projektfile direkt eine DLL verankern, so dass man sie nicht mehr extra laden muß."



  • Aber wird dann noch die DLL benötigt? So wie es hier steht: http://www.chip.de/forum/thread.html?bwthreadid=625864
    wird der Code in die Exe hineinkopiert. Die DLL wird nicht mehr benötigt.



  • Man muss unterscheiden zwischen Import Libraries und Libraries wo der ganze Code drinsteht.

    Bei Import Libraries wird noch die DLL benötigt.



  • Ich meinte natürlich Import Libraries.



  • Die Importlibraries wären dann in der .dsp Datei aufgeführt. Kennt jemand einen Source der .dsp Dateien analysiert?



  • mal ganz grundsätzlich: Es gibt statische Bibliotheken (die heißen z.B. .lib oder .a) und dynamische (.dll unter Windows, .so in dne meisten UNIXen). Funktionen aus statischen Bibliotheken werden direkt in das Programm gelinkt, bei dynamischen Bibliotheken wird nur ein Verweis auf die Funktion in der DLL in dein Prog eingetragen. Beim Programmstart wird der Code aus der DLL geladen, falls er nicht schon im Speicher ist.

    kurzgesagt:
    statische bibliothek = *.lib und sonst nix
    dynamische bibliothek = *.dll und sonst nix "falls du mit funktionspointern arbeitest"
    ansonsten *.lib UND *.dll



  • Ich meinte eigentlich eher das du deine DLL Datei in das gleiche Verzeichnis wie dein Programm kopierst und beim linken die LIB Datei von der DLL mitgibst...



  • Ok. Habt erstmal alle vielen Dank für die Hilfe 🙂
    Ich werde die DSP Datei mal selber analysieren. So schwer ist das ja nun nicht...

    Viele Grüße

    Mike


Anmelden zum Antworten