Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi DLLs in eingenem Prozess starten (https://www.delphipraxis.net/3235-dlls-eingenem-prozess-starten.html)

Dani 2. Mär 2003 17:06


DLLs in eingenem Prozess starten
 
edit: *seufz* der Titel passt leider nicht ganz...hab auch noch ein Wort vergessen *schäm*

Hi Leutz,

Ich arbeite zur Zeit an einer Audioplayer-DLL, welche von einem Setupprogramm aus aufgerufen wird.

Das Problem ist:

Das Setup-Programm macht erst dann weiter, wenn die DLL ihr Funktionsergebnis zurückgegeben hat, ich will aber, dass das Setup-Programm sofort zurückkehrt und die DLL arbeiten lässt...

Wie kann ich es anstellen, dass das Setup-Programm sein Funktionsergebnis erhält, obwohl die DLL weiter ausgeführt wird?

bzw. ist es generell ohne Threads machbar, eine Funktion aufzurufen, dann aber gleich im code weiterzumachen ohne dass auf ein Ergebnis gewartet wird?


Gruß,
Dani

jbg 2. Mär 2003 17:48

Zitat:

ist es generell ohne Threads machbar
Überleg doch mal, was du da willst. 2 Funktionen sollen gleichzeitig ablaufen: Die Setup-Routine soll weitermachen während die Audio-DLL abspielt.
Das können nur Threads (bzw. Prozesse, aber die sind ja auch nur wieder Threads in unterschiedlichen Adressräumen)

Dani 2. Mär 2003 23:56

Ich würde ja nicht danach fragen, wenn ich nicht wüsste, dass es eigentlich gehen müsste ;-)

In einem C++ Beispiel wird mit solch einer DLL ein Fenster erzeugt, das auch nach Ende der DLL-Ausführung noch sichtbar bleibt...

Kennt jemand die Bedeutung von "CALLBACK" im C-syntax?

...vielleicht sollte ich meine Frage umformulieren:

Wie rufe ich aus einer DLL_1 heraus die Funktion einer weiteren DLL_2 auf, sodass DLL_2 nach Beendigung von DLL_1 weiterhin ausgeführt wird?

Oder auf den Punkt gebracht: Wie starte ich eine DLL in einem eigenen Prozess? (falls das geht..)

jbg 3. Mär 2003 08:55

Zitat:

Zitat von Dani
Kennt jemand die Bedeutung von "CALLBACK" im C-syntax?

Ja: "Rückruf". Da muss in der DLL ein eigenet Thread oder zumindest ein verstecktes oder sichtbares Fenster sein, das dann Botschaften erhält und nach einer bestimmten Zeit oder Botschaft dann die CALLBACK-Funktion aufruft, womit der Aufrufer der DLL weiß, dass die DLL nun fertig ist.


Zitat:

Wie rufe ich aus einer DLL_1 heraus die Funktion einer weiteren DLL_2 auf, sodass DLL_2 nach Beendigung von DLL_1 weiterhin ausgeführt wird?
Mit Threads oder Classes.AllocateHWnd/Classes.DeallocateHWnd.


Zitat:

Oder auf den Punkt gebracht: Wie starte ich eine DLL in einem eigenen Prozess? (falls das geht..)
Wieso denn gleich einen eigenen Prozess aufmachen. Ein Thread reicht, der hat um einiges weniger Overhead als ein Prozess.

Dani 3. Mär 2003 11:17

Danke, ich werds mal versuchen :coder:


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:41 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