Access violation
-
void CEinstellungenView::OnInitialUpdate() { m_pSet = &GetDocument()->m_dokumentenVerwaltungSet; CRecordView::OnInitialUpdate(); //<-- hier mault er rum! ASSERT(m_pSet->IsOpen()); // <-- steht das da besser?? GetParentFrame()->RecalcLayout(); ResizeParentToFit(); m_brush.CreateSolidBrush(RGB(255,255,255)); m_pSet->loadPCD(m_cmbPCD); }
-
Die Stelle für das Assert ist schon besser, aber immernoch unlogisch.
Ich hatte dir doch weiter oben gezeigt, dass es in InInitialUpdate erst geöffnet wird. Außerdem war das ein Test - eigentlich kannst du die Zeile löschen.
Wenn du sie behalten möchtest, mach sie bitte noch eine Zeile tiefer.Was für eine Basisklasse hat denn CEinstellungenView? Die Fehlermeldung deutet sehr darauf hin, dass es nicht CRecordView ist.
-
Nein wenn es ein Rekordview wäre hätte ich ja diese ganzen Probleme nicht! Es ist ein Formview, in dem ich einfach nur auf die Setklasse zugreifen will, und die DB schon geöffnet ist etc, im Prinzip sollte das besser eine RecView sein.
Hab es jetzt so
m_pSet = &GetDocument()->m_dokumentenVerwaltungSet; CRecordView *test; ASSERT(m_pSet->IsOpen()); test->OnInitialUpdate();Und er kackt mir wieder beim assert ab! Man ich will doch einfach nur meine Setfunktionen ausführen können, ohne mir Gedanken zu machen was jetzt wann wo offen ist und was nicht!
-
Na, ich dachte den Fehler hätte ich dir ausreichend erklärt...

Mach lieber einfach das OnInitialUpdate nach:
void CEinstellungenView::OnInitialUpdate() { m_pSet = &GetDocument()->m_dokumentenVerwaltungSet; if (!m_pSet->IsOpen()) { CWaitCursor wait; m_pSet->Open(); } CFormView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(); m_brush.CreateSolidBrush(RGB(255,255,255)); m_pSet->loadPCD(m_cmbPCD); }Und irgendwie kommt mir das jetzt bekannt vor.

-
*kissingsmily* Jetzt gehts, sieh ich das richtig, hätte ich einfach nur das Open rein machen müssen und fertig??
Vielen Vielen lieben Dank, endlich kann ich wieder normal arbeiten.
Dank deiner Geduld!!
-
Schön, dass es jetzt tut.

Naja, dass irgendwo ein Open reinmusste war ja von Anfang an klar - blos über das "Wo am besten?" waren wir uns ja unklar.
-
Joa scho!
Ich dachte nur nicht dass es so einfach ist, dass ich es wirklich wie ich es eigentlich intuitiv gemacht hätte, (wenn mein Hinr mir nicht immer dazwischen funken würde) in die OnInitialUpdate machen kann. (Ich hatte mir ja bei meinen panischen hin und her kopierereien einiges zerschossen!) Nächst mal nicht so viel überlegen wie es die im RecView machen sondern erst mal überlegen wie ich es denn machen würde.
Nochmals Vielen lieben Dank
-
Öhm jetzt hab ich damit wieder ein Problem, Ich hab rein nur von debug auf release gestellt und schon
error LNK2001: unresolved external symbol "public: class CEinstellungenDoc * __thiscall CEinstellungenView::GetDocument(void)" (?GetDocument@CEinstellungenView@@QAEPAVCEinstellungenDoc@@XZ)
Woran liegt das? Wenn ich zurück in Debug gehe geht es wieder!
-
Polofreak schrieb:
Öhm jetzt hab ich damit wieder ein Problem, Ich hab rein nur von debug auf release gestellt und schon
error LNK2001: unresolved external symbol "public: class CEinstellungenDoc * __thiscall CEinstellungenView::GetDocument(void)" (?GetDocument@CEinstellungenView@@QAEPAVCEinstellungenDoc@@XZ)
Woran liegt das? Wenn ich zurück in Debug gehe geht es wieder!
Ich wollte das einfach nochmal schnell zitieren weil ich das echt nicht versteh, aber lösen muss, und ich glaube, dass es mit Sicherheit der eine oder andere bzw die eine oder andere weiß!
-
Joa ich hab es raus bekommen, hat zwar ewig gedauert aber ich habs! Für die die es interessiert, Standardmäßig gibt es bei den Recview-Klassen ne Debug und ne Release Get-Document-FKT. Ich hatte unten wohl kein
#ifndef _DEBUG // debug version in DokumentenVerwaltungView.cpp inline CEinstellungenDoc* CEinstellungenView::GetDocument() { return (CEinstellungenDoc*)m_pDocument; } #endif
-
Das haben ALLE Viewklassen, die ich bisher so gesehen habe.

Das war eine der netten Stolperfallen, die dir in der Releaseversion das Genick brechen können.
Lies mal: http://www.codeproject.com/debug/survivereleasever.asp
-
WOW der Artikel hat mich zwar mengenmäßig erschlagen, aber es ist echt ein guter artikel, der genau das beschreibt, was mir passiert ist.
Vielen Dank