großer Dialog -> stack overflow !



  • ich hab nen dialog mit sehr vielen eingabeelementen, wenn ich alle daten mit "dodataexchange" anspreche stürtzt beim aufruf des dialogs mein programm mit "stackoverflow" ab.
    kann man da was machen?

    thx
    marcel



  • Ich finde das erstaunlich - bei meinen Formviews (ist für mich das selbe) habe ich bei etwa 100 Elementen keine Probleme. 😕



  • hi, ich mach eigentlich nix ungewöhnliches:

    in __.h:

    public:
    	CButton m_cbDlg_VpedestrianDeltaCol;
    

    in __.cpp:

    void CDialogSettings::DoDataExchange(CDataExchange* pDX)
    {
    	CDialog::DoDataExchange(pDX);
    	DDX_Text(pDX, IDC_EDIT_MAX_DIST, m_uiDialogMaxDistValue);
    

    und ich hab etwa so 30 eingabe & 10 tickboxes.. weit weniger als 100!
    ist eingebettet in ein CPropertysheet.. sollte aber egal sein!



  • Seltsam ist das schon. Du kannst ja mal die Stacksize vergrößern. Bei VC6 ist das die Linkeroption /stack:0x200000 für 2MB Stack. Standard ist glaub ich 1MB. Das kann man auch da einstellen:

    Project Settings -> Link -> Category "Output" -> Stack allocations



  • Ich seh grad dass ich auch dann beim debuggen eine "exception" bekomme, wenn ich die anzahl der elemente verkleinere (kein absturz, ich beende das programm selbst und bekomme dann folgende meldung:

    Eine Ausnahme (erste Chance) bei 0x773a797e in AEV_PMD.exe: 0xC0000005: Zugriffsverletzung-Schreibposition 0x004d5d5c.
    Das Programm "[3772] AEV_PMD.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.

    was heisst das? "erste chance"? kann ich das irgendwie nachvollziehen wo das herkommt?


Anmelden zum Antworten