Veröffentlicht 31. Oktober 200222 j 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
31. Oktober 200222 j Du musst vielleicht schon noch sagen, mit welcher Fehlermeldung es abstuerzt. Goos
31. Oktober 200222 j 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
31. Oktober 200222 j 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."
31. Oktober 200222 j 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:
31. Oktober 200222 j 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
31. Oktober 200222 j 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!
31. Oktober 200222 j 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.
31. Oktober 200222 j Jo, ansich sollt das alles schon funktionieren Hasts denn auch schonmal mit nem MSDev neustart probiert? Goos
31. Oktober 200222 j 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...
31. Oktober 200222 j Vielleicht hast ja auch irgendwo diverse irgendwo versteckte Einstellungen verdreht Hast schonmal probiert die MainReader Klasse in ein neues Projekt zu packen? Goos
31. Oktober 200222 j 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.
31. Oktober 200222 j 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!
31. Oktober 200222 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.