Ich hatte vor kurzem auch so ein Problem mit einer
dll. Ich habe allerdings eine function in der
dll und da ist mir dann aufgefallen, dass man das Result erst ganz am Schluss zuweisen darf, da die Hauptapplikation sonst sofort bei Zuweisung z.B. eines Defaultwertes meint die Funktion wäre abgearbeitet und arbeitet mit diesem Rückgabewert weiter.
Das Problem an der Sache scheint zu sein, dass die procedure nur "angekickt" wird, aber nicht synchron zum Hauptthread ausgeführt wird. Anschliessend wird die
dll entladen, obwohl die procedure noch nicht fertig ist und dann crasht es. Versuch mal eine Function draus zu machen und erst ganz am Schluss z.B. Result:=True zuzuweisen, dann sollte das Hauptprogramm "warten"...
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.