AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

String aus DLL verschicken

Ein Thema von gmc616 · begonnen am 12. Mai 2006 · letzter Beitrag vom 7. Jul 2020
Antwort Antwort
js747a

Registriert seit: 11. Aug 2008
Ort: Nord hessen
43 Beiträge
 
Delphi 7 Enterprise
 
#1

AW: String aus DLL verschicken

  Alt 7. Jul 2020, 13:25
du kannst z.B. eine Funktion der DLL aufrufen und dieser einen Pointer auf eine Funktion in der EXE mitgeben, diesen Pointer speicherst du und rufst darüber dann die Funktion in der EXE auf

Schön wenn einer mal ein Beispiel posten würde. Anscheinend sind hier nur Specialisten und Hobbyprogramierer verstehen immer nur ein Teil.
Und wenn mal ein Beispiel dabei ist funktioniert es nicht weil man immer noch eine andere Komponente haben muss oder es variabelen gibt die im Beispiel nicht zu finden sind.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.398 Beiträge
 
Delphi 12 Athens
 
#2

AW: String aus DLL verschicken

  Alt 7. Jul 2020, 13:49
Im Prinzip genauso, wie mit den bekannten Event-Methoden der VCL. (Button.OnClick usw.)
Delphi-Quellcode:
// EXE

type TMyProc: procedure({s: string}); // was Selbstdeklariertes oder was Fertiges, z.B. ala TNotifyEvent, TThreadMethod oder TThreadProcedure

function SetEvent(Value: TMyProc);
  external MyDLL;

procedure MakeIt(...); // alternativ kann man auch den Event-Zeiger hier direkt übergeben
  external MyDLL;
Delphi-Quellcode:
// DLL

type TMyProc: procedure({s: string});

var Event: TMyProc; // es muß keine globale Variable sein

function SetEvent(Value: TMyProc);
begin
  Event := Value;
end;

procedure MakeIt(...); // oder sonstwo ... z.B. aus einem Thread
begin
  ...
  if Assigned(Event) then
    Event({s});
  ...
end;
Was für einen Zeiger man nimmt, dass kann man sich gern aussuchen.
Delphi-Quellcode:
type
  TMyProc: procedure({s: string}); // nur Prozeduren und statische Klassenmethoden
  TMyProc: procedure({s: string}) of object; // nur Objektmethoden und Klassenmethoden
  TMyProc: reference to procedure({s: string}); // alles
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 7. Jul 2020 um 13:54 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: String aus DLL verschicken

  Alt 7. Jul 2020, 13:50
Hallo,
Beispiele findest du, wenn du dir ein Dll-Tutorial durchliest
sobald da GetProcAddress vorkommt, siehst du auch, wie man die Adresse, die GetProcAddress liefert
einem Funktionzeiger zuordnet und die Funktion aufruft.

Das ist genau das gleiche Prinzip.
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz