Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Aufruf einer virtuellen Methode schlägt fehl

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
07.03.2006, 08:54 Uhr
~Geri
Gast


Hallo zusammen

Ich habe ein Problem mit meinem Programm, welches ich mit VS2003 compiliere.

ich habe folgende zwei Klassen:


C++:
class CSocketComm
{

   ...
   void CSocketComm::Run()
   virtual void OnDataReceived(const LPBYTE lpBuffer, DWORD dwCount);
}

class CSocketManager : public CSocketComm  
{
public:
    CSocketManager();
    virtual ~CSocketManager();
    virtual void OnDataReceived(const LPBYTE lpBuffer, DWORD dwCount);
}


CSocketManager mySocket;




Die Methode Run wird erfolgreich ausgeführt und wenn Daten empfangen werden darin OnDataReceived aufgerufen. Die empfangenen Zeichen stehen auch tatsächlich in einem Puffer (geprüft mit dem Debugger).

Das Programm stürzt aber mit der Fehlermeldung:
"There is no source code available for the current location" :confused: :confused:

OnDataReceived habe ich im Socket-Manager aber implementiert. Falls ich das Objektorientierte Konzept richtig verstanden habe, dann müsse OnDataReceived von mySocket doch aufgerufen werden??

Nun ist mir noch aufgefallen, dass wenn ich eine Variable der Klasse CSocketManager anlege (z.B. SockTest) und SockTest->OnDataReceived(myBuf,myLen) aufrufe, dann erhalte ich auch den Fehler: "There is no source code available for the current location" :confused: :confused:
.


Vielen Dank für Eure Hilfestellung
Geri
Fragen, Fragen Fragen..

Dieser Post wurde am 07.03.2006 um 10:46 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.03.2006, 10:48 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hast du mal nen breakpoint in dei funktion gesetzt? Ansonsten zeig mal den Ausschnitt wo OnDa... aufgerufen wird
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
07.03.2006, 12:48 Uhr
Geri



Hallo FloSoft

Vielen Dank für Deine Rückmeldung. Einen Breakpoint habe ich auch schon rein gesetzt. Manchmal springt der Debugger hinein, manchmal nicht.

Hier habe ich mal das ganze kleine Programm angehängt (32KB) Vielleicht erleichtert das die Diagnose

[ur]http://www.burger-web.com/Downloads/CPlusPlus/SocketTest2.zip[/url]

Freundliche Grüsse und vielen Dank nochmals

Geri
PS: Ach ja: Ich teste das Programm indem ich mit Hyperterminal eine Verbihndung zum Programm aufbaue. (IP: 127.0.0.1, PORT 2000).
Ablauf:
1. VC-Programm starten
2. Den Button Start Socket drücken
3. Eine Verbindung mit dem Hyperterminal aufbau und einen Taste drücke (Buchsabe reintippe)

Dieser Post wurde am 07.03.2006 um 12:58 Uhr von Geri editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.03.2006, 16:57 Uhr
Geri



Hallo


Ich bin bei diesem Problem immer noch nicht weiter gekommen.

Kann es vielleicht daran liegen, dass onDataReceive in einer eignen Thread aufgerufen wird?

Anbei mein Progrämmchen in dem das Problem auftritt.

www.burger-web.com/Downloads/CPlusPlus/SocketTest2.zip



Wäre super, falls mir hier jemand weiter helfen könnte.

Geri
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: