Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Funktionen in EXE-Datei exportieren (https://www.delphipraxis.net/4349-funktionen-exe-datei-exportieren.html)

greenmile 25. Apr 2003 14:34


Funktionen in EXE-Datei exportieren
 
Hallo zusammen,

mal eine Frage an die Spezies. Vorab: Weiss nicht, ob's hier rein passt ;) Also, ich exportiere in einer EXE Datei Funktionen. Soweit, so gut. Nun möchte ich diese exportierten Funktionen von einer anderen EXE Datei aufrufen und dabei knallt's. Das Problem ist, dass "OnCreate" und co niemals durchlaufen werden. Kann ich das irgendwie umgehen? Oder habe ich etwas übersehen? Nutze nur "LoadLibrary(PChar(ProgramFile))" und "GetProcAdress".

Paul

Darty 25. Apr 2003 14:46

Wenn ich Dich jetzt nicht falsch verstanden habe, muss ich Dich jetzt Fragen warum Du Die Funktionen nicht in einer DLL exportierst ?

greenmile 25. Apr 2003 14:50

Weil ich alles in einer Steuerapplikation habe. Ich möchte die Hauptanwendung API-fähig machen, ohne dass die eigentliche Anwendung externe DLL's nutzen muss. Bin nicht so sehr von von x-Dateien :)

jbg 25. Apr 2003 15:09

Auch wenn das PE-Format es zulässt, ist der Export von Funktionen nicht für exe-Dateien gedacht, denn ein LoadLibrary auf exe-Dateien führt diese aus.

greenmile 25. Apr 2003 15:22

Natürlich ist es nicht gedacht aber für mich die einfachste Möglichkeit, Funktionen zu exportieren ohne extra eine neue DLL zu schreiben. Das Problem ist aber, dass LoadLibrary die EXE eben nicht startet. Ich kann auf die Funktionen zurückgreifen, jedoch stehen die in keinem Zusammenhang mit der Hauptform. Demnach wird also die Hauptform nicht erstellt bzw. Application.CreateForm nicht aufgerufen. Habe ja schon versucht, in der exportierten Funktion "Application.CreateForm" selbst aufzurufen ... ist aber übelst in die Hose gegangen.

Gibt es nicht irgendeinen Trick oder so?

Paul

APP 25. Apr 2003 17:19

Hallo,

schau mal ...eine Wav Datei in eine Exe Datei einbinden?
und ...Daten an eine kompilierte Exe-Datei anhängen? bei den Schweizern (swissDelphicenter.ch).

Allerdings wird hier das PE-Format mißbraucht, die Jedis machen es etwas besser, glaube ich.

[EDIT] Ups, Du schreibst FUNKTIONEN, und ich meine Daten, ojeh!!
Wird wohl nicht passen? :oops: [/EDIT]

woki 26. Apr 2003 12:27

Nun, ich denke der vorgesehene Weg ist hier DCom (Interfaces).

Irgendwelche Tricks richen für mich dann immer nach Problemen ohne Ende, wenn das überhaupt irgendwie geht.
Dll's werden in den Prozeßraum des ausführenden Programmes geladen, exe's werden das nicht, und dann muß es knallen, weil die Adressen im Prozeßraum des aufrufenden Programmes gar nicht gültig sind.

Deswegen benötigt COM, DCOM COM+ ja die Stub/Proxy Mechanismen ...

Der Trick ist dann diese Mechanismen auch zu verwenden.

Grüsse
Wolfgang

greenmile 26. Apr 2003 14:43

Hmmmm. Problem ist nur dass ich nicht weiss, wie ich nachträglich eine bestehende EXE korrekt als DCOM Server ausstatten kann.

woki 26. Apr 2003 15:46

also,

Datei|Neu|Weitere|ActiveX|Automationsobject

Aufgrund der Delohi-Unterstützung ist das weitere jetzt nicht viel Arbeit, aber ein wenig mit der Materie beschäftigen wird man sich jetzt schon noch müssen...

Grüsse
Wolfgang


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