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 Zitieren
Goos Geschrieben 31. Oktober 2002 Geschrieben 31. Oktober 2002 Du musst vielleicht schon noch sagen, mit welcher Fehlermeldung es abstuerzt. Goos Zitieren
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 Zitieren
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." Zitieren
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: Zitieren
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 Zitieren
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! Zitieren
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. Zitieren
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 Zitieren
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... Zitieren
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 Zitieren
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. Zitieren
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! Zitieren
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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.