Technician Geschrieben 31. Oktober 2002 Geschrieben 31. Oktober 2002 Hallo, ich hab ein ganz seltsames Problem: Meine Klasse MainReader enthält als Attribut private: int datlaenge; Will ich nun in der MainReader.cpp schreiben datlaenge = 123; dann kann man das zwar korrekt compilieren, aber wenn ich das ausführe, stürzt das Programm ab (genau an der Stelle, an der datlaenge = 123 steht). Das ganze passiert mit allen Variablen, die ich in der MainReader.h deklariere, egal welcher Datentyp und egal ob public oder private. Deklariere ich Variablen direkt in der Methode (also in der MainReader.cpp), dann funktioniert's :confused: Wer kann mir helfen? Technician
Goos Geschrieben 31. Oktober 2002 Geschrieben 31. Oktober 2002 Du musst vielleicht schon noch sagen, mit welcher Fehlermeldung es abstuerzt. Goos
fmarx2000 Geschrieben 31. Oktober 2002 Geschrieben 31. Oktober 2002 Originally posted by Technician Hallo, ich hab ein ganz seltsames Problem: Meine Klasse MainReader enthält als Attribut private: int datlaenge; Will ich nun in der MainReader.cpp schreiben datlaenge = 123; dann kann man das zwar korrekt compilieren, aber wenn ich das ausführe, stürzt das Programm ab (genau an der Stelle, an der datlaenge = 123 steht). Das ganze passiert mit allen Variablen, die ich in der MainReader.h deklariere, egal welcher Datentyp und egal ob public oder private. Deklariere ich Variablen direkt in der Methode (also in der MainReader.cpp), dann funktioniert's :confused: Wer kann mir helfen? Technician Kannst du das mal als source code posten ? Und was ist die Fehlermeldung beim Absturz ? Wenn du eine Klasse in einer .h - Datei deklarierst dann sollte das auch gehen. Was passiert denn wenn du die Klassendekleration in deine CPP - Datei packst , passiert das dann auch ? Frank
Technician Geschrieben 31. Oktober 2002 Autor Geschrieben 31. Oktober 2002 Originally posted by Goos Du musst vielleicht schon noch sagen, mit welcher Fehlermeldung es abstuerzt. Goos Die übliche Absturz-Fehlermeldung (Roter Kreis mit weißem X drinnen); als Fehlertext: "Die Anweisung in "0x00402758" verweist auf Speicher in "0xcdcdcdd5". Der Vorgang "written" konnte nicht auf dem Speicher durchgeführt werden."
Technician Geschrieben 31. Oktober 2002 Autor Geschrieben 31. Oktober 2002 Originally posted by fmarx2000 Was passiert denn wenn du die Klassendekleration in deine CPP - Datei packst , passiert das dann auch ? passiert das gleiche... stürzt auch ab... der mag nur Variablen innerhalb von Methoden:( Aber eben nur bei dieser Klasse; bei allen anderen ist's okay:rolleyes:
fmarx2000 Geschrieben 31. Oktober 2002 Geschrieben 31. Oktober 2002 Originally posted by Technician Die übliche Absturz-Fehlermeldung (Roter Kreis mit weißem X drinnen); als Fehlertext: "Die Anweisung in "0x00402758" verweist auf Speicher in "0xcdcdcdd5". Der Vorgang "written" konnte nicht auf dem Speicher durchgeführt werden." Kann es sein das es int * heissen muss und nicht int in deiner Dekleration ? Wenn du den Sourcecode nicht mal wenigstens auszugsweise postest macht es keinen Sinn hier weiterzumachen, Hellsehen kann ich noch nicht. Frank
Technician Geschrieben 31. Oktober 2002 Autor Geschrieben 31. Oktober 2002 Originally posted by fmarx2000 Kann es sein das es int * heissen muss und nicht int in deiner Dekleration ? Wenn du den Sourcecode nicht mal wenigstens auszugsweise postest macht es keinen Sinn hier weiterzumachen, Hellsehen kann ich noch nicht. Frank gerne - is nix weiter kompliziertes, da ich schon alles rauskommentiert hab, was noch war..: int MainReader::StartReading(LPCTSTR lpszPathName) { FileToRead = lpszPathName; //bei der folgenden zeile hängt's; wenn ich die auskommentiere und //stattdessen schreibe "int datlaenge = 123;", dann gibt's keinen Absturz datlaenge = 123; return 0; } class MainReader : public Reader { public: MainReader(); virtual ~MainReader(); int StartReading(LPCTSTR lpszPathName); private: int datlaenge; }; Auch wenn mir die "Komplexität" des Codes nicht post-würdig erscheint - vielleicht hilft es dir trotzdem!
Crush Geschrieben 31. Oktober 2002 Geschrieben 31. Oktober 2002 Probier mal aus, ob der Fehler plötzlich keiner mehr ist wenn Du schreibst: MainReader::datlaenge = 123; Für mich sieht das so aus, daß Dein Compiler oder der Linker mal wieder spinnt. Da war doch schon heute früh sowas in der Art.
Goos Geschrieben 31. Oktober 2002 Geschrieben 31. Oktober 2002 Jo, ansich sollt das alles schon funktionieren Hasts denn auch schonmal mit nem MSDev neustart probiert? Goos
Technician Geschrieben 31. Oktober 2002 Autor Geschrieben 31. Oktober 2002 Originally posted by Crush Probier mal aus, ob der Fehler plötzlich keiner mehr ist wenn Du schreibst: MainReader::datlaenge = 123; Für mich sieht das so aus, daß Dein Compiler oder der Linker mal wieder spinnt. Da war doch schon heute früh sowas in der Art. Bringt auch nix. Jetzt ging es erst mal auch in anderen Klassen nicht mehr; zudem ließen sich auch in Methoden keine Variablen mehr anlegen und befüllen. Ein Neustart (des Rechners!) brachte auch nix. Ich hab jetzt mal das Projekt auf ein anderes Laufwerk kopiert - aber das half auch nix Andere Projekte funktionieren einwandfrei, nur mein Reader-Programm...
Goos Geschrieben 31. Oktober 2002 Geschrieben 31. Oktober 2002 Vielleicht hast ja auch irgendwo diverse irgendwo versteckte Einstellungen verdreht Hast schonmal probiert die MainReader Klasse in ein neues Projekt zu packen? Goos
Crush Geschrieben 31. Oktober 2002 Geschrieben 31. Oktober 2002 Da hat´s mit Sicherheit irgendeine interne Compilertabelle oder etwas in den Projekt-Settings zerschlagen. Im Schlimmsten Fall mach ein neues Projekt auf und importiere die Dateien - vielleicht geht´s dann wieder.
Technician Geschrieben 31. Oktober 2002 Autor Geschrieben 31. Oktober 2002 Originally posted by Crush Da hat´s mit Sicherheit irgendeine interne Compilertabelle oder etwas in den Projekt-Settings zerschlagen. Im Schlimmsten Fall mach ein neues Projekt auf und importiere die Dateien - vielleicht geht´s dann wieder. ...neues Projekt und Dateien importiert --> geht wieder!
fmarx2000 Geschrieben 31. Oktober 2002 Geschrieben 31. Oktober 2002 Originally posted by Technician Hallo, ich hab ein ganz seltsames Problem: Meine Klasse MainReader enthält als Attribut private: int datlaenge; Will ich nun in der MainReader.cpp schreiben datlaenge = 123; :confused: Wer kann mir helfen? Technician Hätte mich auch gewundert wenn es nicht gegangen wäre. Unter g++ unter SUN ging es ohne Probleme und sonst gibt es ja nicht viele Möglichkeiten um nicht mehr zu gehen. Frank
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden