Auf DLL zugreifen deren Funktionen in einer Klasse liegen



  • Also ich hab eine DLL und dort wird eine Funktion exportiert.
    Eigentlich sind dort aber mehrere Hundert Funktionen drin, somit gehe ich davon aus, dass es sich dabei um eine Klasse handelt und der alle eigentlichen Funktionen stecken.

    Wie kann ich solch eine DLL einbinden und deren Funktionen nutzen?



  • Eigentlich kann man keine Klassenfunktionen in einer DLL exportieren.
    Hast du dir mal diese eine Funktion angeschaut, was für Parameter sie erwartet/wie sie heißt ?



  • Hast du eine Importbibliothek zur DLL? Was weisst du überhaupt darüber, ausser dem "davon ausgehen dass es sich um eine Klasse handelt"? Du wirst doch wohl sinnvolle Informationen dazu haben?

    RTMPHasser schrieb:

    Eigentlich kann man keine Klassenfunktionen in einer DLL exportieren.

    Wieso sollte man das nicht können?



  • Nexus schrieb:

    Hast du eine Importbibliothek zur DLL? Was weisst du überhaupt darüber, ausser dem "davon ausgehen dass es sich um eine Klasse handelt"? Du wirst doch wohl sinnvolle Informationen dazu haben?

    RTMPHasser schrieb:

    Eigentlich kann man keine Klassenfunktionen in einer DLL exportieren.

    Wieso sollte man das nicht können?

    Ich meinte damit jetzt keine statischen :p
    Wie soll man denn normale Klassenfunktionen exportieren, man braucht doch ein Objekt um diese aufzurufen und die kann man ja nur in der DLL selber erstellen.
    AFAIK lässt der Compiler sowas auch gar nicht zu ;O



  • Also Problem ist folgendes, ich habe eine C++ .lib nebst header.
    Wenn man ein Programm damit compiliert, wird temporär eine dll erstellt und diese hab ich kopiert in dem wissen ich kann die auch mit anderen programmiersprachen nutzen.

    Es exitiert eine Funktion namens intSpecialStart.
    Und dahinter müssen sich irgendwie mehrere anderer Funktionen "verstecken" an die ich gern ran würde.

    Es gibt eine Möglichkeit aber ich weiß nicht wie.



  • RTMPHasser schrieb:

    Nexus schrieb:

    Hast du eine Importbibliothek zur DLL? Was weisst du überhaupt darüber, ausser dem "davon ausgehen dass es sich um eine Klasse handelt"? Du wirst doch wohl sinnvolle Informationen dazu haben?

    RTMPHasser schrieb:

    Eigentlich kann man keine Klassenfunktionen in einer DLL exportieren.

    Wieso sollte man das nicht können?

    Ich meinte damit jetzt keine statischen :p
    Wie soll man denn normale Klassenfunktionen exportieren, man braucht doch ein Objekt um diese aufzurufen und die kann man ja nur in der DLL selber erstellen.
    AFAIK lässt der Compiler sowas auch gar nicht zu ;O

    Nun ja, bei mir klappen all diese Dinge eigentlich ganz gut.



  • RTMPHasser schrieb:

    Wie soll man denn normale Klassenfunktionen exportieren, man braucht doch ein Objekt um diese aufzurufen und die kann man ja nur in der DLL selber erstellen.

    Hm? Ich glaube, du solltest dir nochmals dynamische Bibliotheken genauer anschauen. Unter C++ ist es üblich, ganze Klassen mit sämtlichen öffentlichen Memberfunktionen zu exportieren. Wo das Objekt erstellt wird, spielt auch nur eine Rolle, wenn du inkompatible Laufzeitbibliotheken hast (was du nach Möglichkeit vermeiden solltest).

    nubi007 schrieb:

    Wenn man ein Programm damit compiliert, wird temporär eine dll erstellt und diese hab ich kopiert in dem wissen ich kann die auch mit anderen programmiersprachen nutzen.

    Für C mag das zutreffen, aber bei C++ bezweifle ich das. Da können sich DLLs je nach Compiler auch stark unterscheiden, da kein einheitliches ABI existiert.

    nubi007 schrieb:

    Es gibt eine Möglichkeit aber ich weiß nicht wie.

    Das hängt von der Programmiersprache ab, in der du C++ (oder C) einbinden willst.



  • Purebasic würde ich nehmen wollen. Normal exportierte Funktionen gehen ja wie gesagt. Nur eben das mit den Klassen....
    Wenn es mit irgendeiner anderen nur geht, dann wäre ich trotzdem für Infos dankbar.


Log in to reply