Unterschied zwischen Release und Debug Modus?



  • Hallo bei VS 2005 gibt es oben ein Debug- & Release Modus, was ist der Unterschied und kann man damit EXE Datei verkleinern??



  • die unterschiede sind nicht festgelegt. im normalfall ist ein debug-build im gegensatz zu release nicht optimiert, enthält symbolinformationen und heap/stack-integritätstests. du kannst die optionen für release/debug in den projekteigenschaften selbst festlegen und auch eigene targets erstellen.
    wenn du von debug auf release umschaltest, wird (bei standardeinstellungen) das kompilat kleiner und schneller.



  • Habe mein Projekt auf Release umgestellt und bei der Kompilierung um die 30 Fehler bekommen, meistens Konvertierungsfehler wie z.B.:

    string ComputerName()
    {
    	DWORD nSize;  
    	char computer_name[255];  
    	//LPWSTR computer_name;
    	nSize = sizeof( computer_name ); 
    	GetComputerName( computer_name, &nSize ); 
    
    	return computer_name;
    }
    

    Hier habe ich den Fehler bekommen:

    error C2664: 'GetComputerNameW': Konvertierung des Parameters 1 von 'char [255]' in 'LPWSTR' nicht möglich
    

    Also habe ich dann folgende Zeile geändert:

    GetComputerName( (LPWSTR)computer_name, &nSize );
    

    Dann hats funktioniert, also wieso bekommt man mit Release diese ganzen Fehler und bei Debug nicht??



  • kernel64 schrieb:

    Dann hats funktioniert,

    Du meinst, der Compiler hat's geschluckt. Funktionieren wird das nicht.

    also wieso bekommt man mit Release diese ganzen Fehler und bei Debug nicht??

    Wahrscheinlich, weil du deine Debug-Konfiguration irgendwann mal von Unicode auf Multibyte umgestellt hast, die Release-Konfiguration aber nicht.



  • Ohhhhhh und jetzt habe ich die ganze Zeit alle Fehler mit Typcasts versehen und dann wieder auf Zeichensatz auf nicht festgelegt eingestellt, die ganzen Casts werden nun wieder als Fehler gemeldet, naja jetzt muss ich alles wieder rückgängig machen 😞

    Danke für die Info


Anmelden zum Antworten