Debug contra Release
-
Hi,
hab grad noch noch ein zweites Problem.
Wie kann es sein, dass ein Code unter Debug funktioniert und unter Release eine Schutzverletzung in der MFC42.dll meldet?
Nun genauer.
Ich hab eine Anwendung mit Doc/View-Modell. Eine Methode aus der CView-Klasse führt eine Berechnung durch und schreibt das Ergebnis in eine Datei. Die Datei wird geschlossen und eine Methode in der CDoc aufgerufen die die erstellte Datei in ein neues Fenster öffnet. Irgendwo da schmiert die Release ab. Die Methode in der CDoc wird aber auch von verschiedenen anderen Methoden benutzt, wo sie auch in der Release funktioniert.
Muss ich einfach nur die MFC42.dll mal updaten? Wie kann man Fehler eingrenzen wenn der Debug funktioniert?
-
jo, den fehler kannst du eingrenzen indem du dein Programm debuggst.
im debugmodus werden alle variablen mit nullen initialisiert, im releasemodus nicht.
-
Komisch nur, das zu dem Zeitpunkt wo das Programm im Release abstürzt nichts anderes passiert als das eine definitiv vorhanden Datei, die auch mit fclose() geschlossen ist geöffnet wird. Zugriff auf Variablen, seis Null oder nicht erfolgt nicht in dem Sinne.
-
kannst du das programm vielleicht hochladen? würde es gerne für dich debuggen!
-
Geht erst morgen, aber danke das du dich der Sache mal annehmen willst!!!
Thanks. Bis danne.
-
schade, kann schon garnicht mehr abwarten. du kannst mir ja auch per mail schicken
-
Hi,
bin wieder da.
Kann es eh nur per Mail schicken, blos wohin?
-
-
sorry, der code lässt sich leider nicht mit visual c++ 7 kompilieren. entweder is mein compiler "kaputt" oder dein code fehlerhaft
-
was machst du auch für einen mist. z.B.
CString n;
....n = 1;
-
Muss immer alles logisch sein?
Ich klicke meine Software auch mehr zusammen und hoffe das sie funktioniert.
Entscheidend ist doch was hinten bei raus kommt!
-
fake detected :p
-
Heist "fake detected" du weist woran es liegt.
Ach bevor ichs vergesse, Cstring n... n=1 hat ne Bedeutung!!!
Es kann genausogut n=1a heissen.
Ich guck jetzt mal in mein Postfach.
Tschau
-
ich dachte da hat jemand einfach unter deinem Namen gepostet (Fake). Also ich kann dein Programm nicht kompilieren und dir somit nicht helfen. Einem CString kann man keinen Integer-Wert zuweisen, nur String also sowas wie CString n; n = "1";