Ik heb de volgende class:
.
Op het moment dat een client naar mijn server verbind op een bepaalde port word de volgende code aan geroepen:
Probleem is dat die dynamic_cast altijd NULL teruggeeft (krijg dus die exceptie voor m'n snufferd), terwijl Client wel gewoon goed is. Gebruik ik dynamic_cast verkeerd? Kan ik niet van TWSocketClient naar TClient casten maar alleen andersom? Help!
.
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| class TClient : public TWSocketClient { public: // Socket variables char* Buffer; AnsiString Command; bool LoggedOn; TTimer *Timer; int BufferSize; int Count; // CTI variables AnsiString Extension; __fastcall ~TClient(); int __fastcall SendStr(AnsiString Text); void __fastcall TimerExec(TObject *Sender); void __fastcall ResetTimer(); void __fastcall Interpret(); }; |
Op het moment dat een client naar mijn server verbind op een bepaalde port word de volgende code aan geroepen:
C++:
1
2
3
4
5
6
7
8
9
| void __fastcall TfrmMain::wsMainClientConnect(TObject *Sender, TWSocketClient *Client, WORD Error) { TClient *cln = dynamic_cast<TClient *>(Client); if (!cln) throw Exception("Ja kut"); // ... |
Probleem is dat die dynamic_cast altijd NULL teruggeeft (krijg dus die exceptie voor m'n snufferd), terwijl Client wel gewoon goed is. Gebruik ik dynamic_cast verkeerd? Kan ik niet van TWSocketClient naar TClient casten maar alleen andersom? Help!