Běžné problémy při vytváření verze sestavení
Během vývoje bude obvykle sestavit a otestovat s ladění sestavení projektu.Pokud potom vytvořit aplikaci pro verzi sestavení, mohou získat narušení přístupu.
Seznam níže obsahuje základní rozdíly mezi ladicího a sestavení uvolnění (nondebug).Další rozdíly, ale jsou následující základní rozdíly, které by mohly způsobit selhání aplikace verze sestavení při pracuje v sestavení ladění.
Rozložení haldy
Kompilace
Podpora ukazatel
Optimalizace
Viz /GZ (zachycení verze sestavení chyby v Debug Build) volba kompilátoru informace o úlovku verze sestavení chyby v sestavení ladění.
Rozložení haldy
Rozložení haldy budou příčinou asi devadesát procent zjevné problémy aplikace pracuje v ladění, ale není uvolnění.
Při vytváření projektu pro ladění používáte přidělování paměti ladění.To znamená, že bajty guard umístěno kolem nich všechny přidělení paměti.Tyto bajty guard rozpoznat přepsání paměti.Protože se liší pro ladění a uvolnění haldy rozložení nemusí vytvořit všechny problémy v sestavení ladicí verze přepsání paměti, ale může mít závažné účinky ve verzi sestavení.
Další informace naleznete v tématu Kontrola přepsání paměti a použití Debug Build na kontroly pro přepsání paměti.
Kompilace
Mnoho MFC makra a mnohem MFC provádění změn při vytváření vydání.Zejména makro ASSERT vyhodnocen nic ve verzi sestavení, takže žádný kód v ASSERTs bude spuštěn.Další informace naleznete v tématu Prověřit prohlášení výrazu.
Některé funkce jsou inlined pro zvýšení rychlosti ve verzi sestavení.Optimalizace jsou obecně zapnuto ve verzi sestavení.Přidělování paměti pro různé také používá.
Podpora ukazatel
Chybějící informace o ladění Odebere odsazení z aplikace.Osamocené ukazatele ve verzi sestavení, mít tak větší šanci na neinicializované paměti namísto ukázání na informace o ladění.
Optimalizace
V závislosti na povaze některých segmenty kódu optimalizace kompilátor vygenerovat kód neočekávané.Je nejméně pravděpodobné příčiny potíží verzi sestavení, ale někdy vzniknou.Roztok, viz Optimalizace svůj kód.