Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TQuery aus DLL an Appl. weiterreichen / Rückgabewerte (https://www.delphipraxis.net/77258-tquery-aus-dll-appl-weiterreichen-rueckgabewerte.html)

361 16. Sep 2006 23:37


TQuery aus DLL an Appl. weiterreichen / Rückgabewerte
 
Hallo,

ich habe bereits die Suche benutzt und meine Fragen sind doch noch unbeantwortet:

1.) Ich möchte ein TQuery-Objekt an eine DLL übergeben und in einer Funktion der DLL ausführen lassen und
2.) ein ausgeführtes TQuery von der DLL an die Application als result weiterreichen, sodass ich mit den Ergebnissen weiterarbeiten kann.

Hat jemand ein paar EINFACHE Codebeispiele oder eine Beispielanwendung vielleicht? :)


Schönen Abend noch,

Gruß,
Sebastian

chaosben 17. Sep 2006 10:28

Re: TQuery aus DLL an Appl. weiterreichen / Rückgabewerte
 
Oh ja .... das alte Problem. :)

Was du willst, ist imho auf ganz saubere Art nicht zu lösen.
Warum?
Du kannst in der DLL nicht auf VCL-Objekte deines Hauptprogramms zugreifen. Es kann nämlich sein, das die DLL ganz andere Units/Unit-Inhalte verwendet hat, um die gleiche Klasse zu erstellen (und umgedreht).
Und was nun?
- Obiges läßt sich wie hier beschrieben umgehen wenn DLL und Hauptprogramm den gleichen Compiler und die gleichen Sourcen nutzen.
- Du lässt die DLL alles selber machen (also Verbindungsinfos an DLL übergeben)
- Du benutzt anstatt von DLL's Runtime-Packages.

361 17. Sep 2006 10:55

Re: TQuery aus DLL an Appl. weiterreichen / Rückgabewerte
 
Hallo Benjamin,

erst einmal dankeschön für Deine Antwort. Kann man das denn nicht irgendwie über Pointer lösen? Sprich, ich rufe Funktionen der DLL aus dem Hauptprogramm auf. Vielleicht kann ich irgendwie auf die TQuery-Objekte zugreifen?

Besten Dank schonmal im Voraus :)


Sebastian

Bernhard Geyer 17. Sep 2006 19:38

Re: TQuery aus DLL an Appl. weiterreichen / Rückgabewerte
 
Zitat:

Zitat von 361
erst einmal dankeschön für Deine Antwort. Kann man das denn nicht irgendwie über Pointer lösen? Sprich, ich rufe Funktionen der DLL aus dem Hauptprogramm auf.

Ohne die Verwendung von Laufzeitpackages ist die Verwendung von Objekten aus Exe in DLL und umgekehrt ein Glücksspiel, da DLL und Exe unabhänige Klassenhierarchien haben und jede unterschiede zweichen Exe und DLL bezüglich Compilerversion, Patchlevel oder auch Optimierungen zu Schutzverletzungen führung muß.

361 17. Sep 2006 19:57

Re: TQuery aus DLL an Appl. weiterreichen / Rückgabewerte
 
Hallo Bernhard,

hättest Du vielleicht ein Beispiel über die Verwendung von einem Package? Ich habe leider noch nicht mit Packages gearbeitet, weiß also auch nicht wie man da den Zugriff auf ein Package realisiert. :)

Danke,

Sebastian

mkinzler 17. Sep 2006 20:04

Re: TQuery aus DLL an Appl. weiterreichen / Rückgabewerte
 
Ein Package kompiliert in eine Bpl welche du wie ne Dll dynamsich mit LoadLibrary() laden kannst, aber auch auf die Objekte darin zugreifen kannst.

Bernhard Geyer 17. Sep 2006 20:27

Re: TQuery aus DLL an Appl. weiterreichen / Rückgabewerte
 
Zitat:

Zitat von 361
hättest Du vielleicht ein Beispiel über die Verwendung von einem Package? Ich habe leider noch nicht mit Packages gearbeitet, weiß also auch nicht wie man da den Zugriff auf ein Package realisiert. :)

Kann ich dir leider nicht bieten. Meine DLL's (wenn ich denn welche mache) haben im einer C-Kompatibles Interface mit PChar/PWidechar, ...

Im Forum sollten aber genügend Beispiele zu finden sein. Evtl. Hilf ja jemand anderes mit einem Beispeil

jbg 17. Sep 2006 21:32

Re: TQuery aus DLL an Appl. weiterreichen / Rückgabewerte
 
Zitat:

Zitat von mkinzler
Ein Package kompiliert in eine Bpl welche du wie ne Dll dynamsich mit LoadLibrary() laden kannst

Na dann lieber LoadPackage statt LoadLibrary, denn ansonsten würden die initialization Abschnitte der Units nicht ausgeführt.

361 17. Sep 2006 22:21

Re: TQuery aus DLL an Appl. weiterreichen / Rückgabewerte
 
Hmmm... sagt mir noch nicht viel. Ein Beispiel wär schon was schönes.. :) Aber ich probier mal etwas weiter.

MarcoWarm 27. Sep 2006 06:08

Re: TQuery aus DLL an Appl. weiterreichen / Rückgabewerte
 
Schau dir mal TRemoteDataModule an. Demo liegt in dem Demo-Verzeichnis von Delphi. Das Verzeichnis heißt bei mir SharedConn. Damit klappt sowas.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz