CDateTimeCtrl MFC-Bug



  • Hallo,

    ich habe in meinen dialog ein CDateTimeCtrl Steuerelement. Wenn ich mein Programm im Debug modus laufen lasse funzt alles einwandfrei. Lasse ich das ganze aber im Release mode laufen, so erhalte ich eine Speicherzugriffsverletzung (0xC0000005: Access Violation).

    Ueber google habe ich erfahren das das wohl ein MFC-Bug sein soll, aber leider habe ich keine Loesungen zum Problem gefunden.

    Kennt jemand das Problem und wenn ja wie kann ich das beheben?

    Vielen Dank fuer Hilfen

    LG

    Mike



  • Welche VS-Version? Und *wo* stürtzt es genau ab? Wie sieht der relevante Code aus?



  • Die Version ist VS 6.0.

    void CStatisticsDlg::OnSelChangeTo()
    {
    	static bool bChanged = false;
    	COleDateTime time;
    	CDateTimeCtrl* pWnd = (CDateTimeCtrl*)GetDlgItem(IDC_DATE_TO);
    	pWnd->GetTime(time);
    	m_sDayToDB = time.Format("%m/%d/%Y");
    	m_sDayTo = time.Format("%d/%m/%Y");
    
    	if(!bChanged) {
    		switch(m_ctID) {
    		case IDC_PBTN_SUMMARY:
    			OnShowSummary();
    			break;
    
    		case IDC_PBTN_TOTALS:
    			OnShowTotals();
    			break;
    
    		case IDC_PBTN_THREAD_BREAKS:
    			OnShowThreadBreaksAndErrors();
    			break;
    
    		case IDC_PBTN_ACTIONS:
    			OnShowActions();
    			break;
    
    		case IDC_SUMMARY_ALL:
    			OnShowSummaryAll();
    			break;
    		}
    		bChanged = true;
    	}
    	else
    		bChanged = false;
    }  // nach Ruecksprung aus der Member-Funktion stuerzt das Programm (nur im Release Mode) ab.
    

  • Mod

    Wie sieht Deine Message Map aus? Hast Du selbst Nachrichten definiert?



  • Meine Message maps sieht so aus. Ich habe die DTN_DATETIMECHANGE Message benutzt da ich das so aus dem netz entnommen habe.

    BEGIN_MESSAGE_MAP(CStatisticsDlg, CDialog)
    ON_NOTIFY(DTN_DATETIMECHANGE, IDC_DATE_TO, OnSelChangeTo)
    END_MESSAGE_MAP()
    

    und in der Klasse ganz normal als afx_msg deklariert. Also so:

    ...
    afx_msg void OnSelChangeTo();
    ...
    

Anmelden zum Antworten