Ich tipp mal auf verschiedene Speichermanager, einer in deiner Anwendung und einer in deiner
dll. Nutzt du sharemem, runtime packages oder andere Mechanismen um das zu vermeiden?
Mein zweiter Tip nach einem zweiten Blick ist, dass dein Hardcast von argv auf ein array of PWideChar einfach falsch ist.
Die
dll ist in der Sprache D geschrieben, diese hat einen GC. Allerdings ist der GC deterministisch (GC collect läuft nur wenn neuer Speicher angefordert wird). Der nächste GC collect wird frühestens im nächsten Aufruf der
Dll passieren.
Unterschiedliche Speicherverwaltungen sollten deswegen kein Problem sein.
Viele Grüße
Andre