Hallo.
Ich habe folgendes Problem: Ich verwende als Protokollschicht eine Klasse mit einem TidTCPClient-Member.
Ich möchte diese Klasse zur Kommunikation mit dem Server in eine
DLL auslagern. D.h. ich habe 2 Funktionen, die ich exportiere und die jeweils lokal eine Instanz der Klasse verwenden, d.h. die gesamte Kommunikation - vom Connect über mehrere Read/Write zum Disconnect - läuft lokal in einer Funktion.
Diese Funktionen werden per Timer regelmäßig aufgerufen (Nachrichten abholen). Mein Problem: Der erste Aufruf der Abholfunktion läuft fehlerfrei. Beim zweiten Aufruf bekomme ich eine Zugriffsverletzung beim Aufruf von TcpClient.IOHandler.Readln; - wobei der vorherige Connect funktioniert und auch per writeln eine Nachricht an den Server geschickt werden kann. Nur das Lesen der Antwort endet in einen Zugriffsfehler, Fehler beim Schreiben an Adresse xxx.
Interessanterweise funktioniert alles, solange die Funktionen im Programm (d.h. in einer normalen
Unit) stehen. Nur wenn ich sie über LoadLibrary und GetProcAddress aus der
DLL lade, geht der zweite Aufruf daneben.
Kann mir da irgendeiner helfen?