Announcement

Collapse
No announcement yet.

Wie binde ich diese DLL ein?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie binde ich diese DLL ein?

    Hi,
    ich habe folgende Seite gefunden:
    http://www.evilaliens.com/Rio500Remix.htm
    Dort ist eine DLL (aber noch im C Sourcecode) die ich gerne in Delphi einbinden würde. Leider habe ich noch keine Erfahrung mit dll's.
    Auf der Seite: http://duncanthrax.net/riofxp/ gibt es ein OpenSOurce Projekt in VB, wo auch diese DLL eingebunden ist (dort liegt auf die kompilierte Version der DLL) falls es hilft.
    Kann mir jetzt einer sagen, wie ich in mein Delphi Programm die Funktionen aus der Dll einbinden kann?

    Viele Danke
    Michael

  • #2
    Hi!

    Du kannst entweder die Source der DLL von C auf Delphi portieren, und dann verändern und neu compilieren.

    Oder du kannst die compilierte Version einbinden. Hier hast du 2 Möglichkeiten:
    - Statisch
    Hier wird die DLL gleich bei Programmstart eingebunden, egal ob sie je benötigt wird oder nicht, und bei Programmende automatisch aus dem Speicher gekickt. Ist einfacher, aber nicht so effizient.
    - Dynamisch
    Du lädst die DLL erst wenn du sie wirklich brauchst und importierst die enstprechenden Methoden. Ist aufwändiger, und du musst dich selbst darum kümmern dass die DLL am Schluss wieder korrekt freigegeben wird.

    Egal für welchen Weg du dich entscheidest, du musst die Namen der Methoden kennen die du importieren willst. Diese kannst du dann (statisch) mit
    procedure Prozedurname; external 'DLL_NAME.DLL';
    oder
    function Funktionsname; external 'DLL_NAME.DLL';
    laden und wie eine normale Methode behandeln.

    Für das dynamische Laden schlag in der OnlineHilfe unter "dynamic loading" nach, da findest du alles was du brauchst.

    hoffe geholfen zu haben...

    Gruss Luka

    Comment


    • #3
      Lukas, Funktion nicht Methode!

      Michael, alles was Du brauchst ist die DLL und der C header (.h file).
      Dad header file laesst sich nach Pascal portieren und bindet dann die DLL statisch ein. Delphi liefert in den Sourcen viele Beispiele mit.
      Windows.pas z. B. ist nichts anderes als eine Konversion des Win32 APIs, da Windows selbst aus nichts anderem als einigen DLLs besteht.
      Falls Du Hilfe brauchst schicke den C header an mich [email protected]. Ich gebe Dir dann Tips

      Comment

      Working...
      X