Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Assertionfehler bei UpdateAllViews und Thread...!!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
16.01.2006, 10:16 Uhr
~wayneschlegel
Gast


Hallo,

ich hab folgendes Problem. Ich habe mit AfxBeginThread() einen Thread gestartet, der das Document verändert, in dem es vom Document eine Methode aufruft. Innerhalb dieser Methode macht dann das CDocument ein Update auf seine Views mittels UpdateAllViews(NULL);

Bei diesem Aufruf kriege ich dann eine Fehlermeldung, dass eine Assertion fehlgeschlagen ist in wincore.cpp, Line 1051. Beim Debuggen habe ich rausgefunden, dass es die Assertion ASSERT_VALID(pView) in CDocument::UpdateAllViews() ist...wenn man in den Code der Assertion springt, dann wird dieser Assertion das pView-Object übergeben (Variable pOb)...ich verstehe den Code zwar nicht, aber ganz am Ende dieser Assertion, wird dann der folgende Aufruf versucht: pOb->AssertValid()...In diese Methode kommt er aber irgendwie nicht - keine Ahnung wieso...pView (pOb) sind jedenfalls nicht NULL.....

++++++++++++++++++++++++++++++
WEISS JEMAND,WORAN DAS LIEGEN KÖNNTE??? ICH VERMUTE, ES LIEGT DARAN, DASS DER AUSLÖSER DER GANZEN AKTION VON EINEM THREAD STAMMT...JEDENFALLS TRITT DAS PROBLEM NUR DANN AUF...
+++++++++++++++++++++++++++++++

Ich wäre sehr, sehr dankbar für Hilfeleistungen.....
Bis dann.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.01.2006, 23:18 Uhr
Spacelord
Hoffnungsloser Fall


Dein Problem liegt warscheinlich bei den Handle Maps die von den MFC intern verwaltet werden.
Grob gesehen werden diese benutzt um die MFC C++ Objekte den "richtigen" Windows-Objekten (Fenster,Menüs etc. welche Windows ja intern über Zugriffsnummern verwaltet) zuzuordnen.
Derartige Maps werden für jeden MFC Thread verwaltet.
Das ist der Grund dafür dass man innerhalb eines Threads nur auf MFC Fenster(usw.) zugreifen darf die auch in diesem Thread erstellt wurden.
Das Ganze hier jetzt ausführlich zu beschreiben würde zu weit führen,aber folgender Link sollte dir da weiterhelfen.
www.mindfiresolutions.com/download/Inside%20MFC=Handle%20Maps%20and%20Temporary%20Objects.pdf

Bin mir ziemlich sicher dass dein Problem in dieser Richtung liegt.

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: