Avanti-cl mit Delphi - ???

Konsistorium EKsOL allegro at eksol.de
Mi Mai 29 16:26:42 CEST 2002


> Ich habe die SECURITY_ATTRIBUTES ueberall auf NULL gesetzt, weil ich
> dachte, es muessen hier keine Handles _vererbt_ werden, es werden welche
> explizit uebergeben. Ist das vielleicht verkehrt?

Sehr geehrte Frau Koczian,
genau das!

bInheritHandles : 1

muß bei CreateProzess gesetzt werden, weil sonst die Startup-Info (Das
Verbiegen von Stdin, Stdout) nicht wirksam wird und der Elternprozeß keinen
Zugriff erhält.

> Mit Pipes kriege ich schon gar nichts auf die Reihe, deshalb wollte ich es
> zuerst so versuchen und von da aus weitermachen.
>
Auch das habe ich schon versuchsweise komplett über die WinAPI mit den
Win-Erweiterungen in Python implementiert.
Häßlich daran ist, daß man einen Thread für das Auslesen der Antwort starten
muß und irgendwie wieder EOR erkennen, sonst ist die Pipe leer, der Aufruf
kehrt zurück und man hat garnichts.
Das geht zwar alles (sogar einigermaßen fix), das Problem ist aber das EOR.
Wenn man das im Job nicht gescheit produzieren kann,
fliegt einem die ganze Sache mit einer Broken-Pipe-Error um die Ohren.
Außerdem müssen Sie bei den Pipes angemessen dimensionieren, selbst wenn Sie
die Daten nur versenken wollen, und readFile() hat auch so seine
Sonderlichkeiten.
In Summe: Es bringt in der Performance garnicht so fürchterlich viel (wenn
überhaupt) und ist den Aufwand nicht wert.
Wir sind in Python dazu übergegangen mit win32.popen3() zu arbeiten, das
scheint kein Speicherleck zu haben und sehr robust zu funktionieren.
Wenn Sie trotzdem wollen, kann ich Ihnen die WinAPI-Sachen schicken.

MfG

Volker Bachschneider





Mehr Informationen über die Mailingliste Allegro