Hi Sonic,
grundsätzlich mußt du herausbekommen, wie sich deine
DLL verhält, wenn du den Procedure-Zugriff einfach "abschießt". Prüfe auch vorher, ob es nicht andere Möglichkeiten gibt aus der Procedure zurückzukommen.
Sollte das nicht möglich sein, so sehe ich nur die Möglichkeit den Aufruf in einen Thread zu verlagern und von "außen" einen Timeout darüber zu legen. Kehrt dein Thread nicht nach einer gewissen Zeit mit einem Ergebnis zurück, so beendest du ihn von außen. Das heißt dann, das mit jedem Aufruf ein neuer Thread gestartet wird, dieser die Procedure ausführt und dann beendet wird. Läuft er ins Tomeout, beendest du ihn von außen und fängst wieder von vorne an.
Gruß oki