Indy TidThread Data
-
Hallo,
ist wahrscheinlich ein typischer Anfängerfehler: ich versuche einen char-String der Data Eigenschaft von TidThread zu zuweisen. Beim Compilieren wird auch kein Fehler gemeldet, bei der Ausführung aber ein Access Violation Fehler.
Der Code sieht folgendermaßen aus:char Rhost[50];
strcpy(Rhost, AThread->Connection->Binding->PeerIP.c_str());
strcpy((char*)AThread->Data, Rhost);folgendes steht in der Online Hilfe: Note: It is the responsibility of the TIdThread descendant to cast Data to the class instance required by the TIdThread descendant, or an exception will be raised.
Über einen Tip würde ich mich freuen!
Gruß - Michael
-
Mach doch mal..
AnsiString Rhost;
Rhost = AThread->Connection->Binding->PeerIP;
AThread->Data = Rhost.c_str();Oder willst du keinen string bzw. AnsiString benutzen?
Aber was erwartet Data denn eigentlich? Wirklich nen char*?
-
leider klappt das auch nicht. Fehlermeldung: Konvertierung von char* nach TObject* nicht möglich.
Offensichtlich erwartet er TOject*.
Wenn ich dann folgendes mache:String Rhost;
Rhost = AThread->Connection->Binding->PeerIP;
AThread->Data = (TObject*)Rhost.c_str();geht es ohne Fehler. Jetzt muß ich nur noch sehen, wie ich die Daten wieder herausbekomme.
Danke für die schnelle Antwort!
Gruß - Michael