einstieg in MFC: AfxGetThread
-
Hi,
versuch mich grad in die MFCs einzuarbeiten. In vielen pdfs die dies ganz gut erklären für den ersten einblick, tauchen aber nie die Funktionen auf AfxGetThread oder AfxGetApp.
Viel häufiger ist von CWinApp etc. die Rede. Liegt das daran, dass Afx... Funktionen nur Auftreten, wenn in VS die Standard-Konfiguration verwendet wird?
Bei AfxGetThread würde mich nämlich z.B. sehr interessieren, wie der Hauptthread hier genau gefunden wird. Und wie des weiteren ein weiterer Thread initialisiert werden kann (über welche Funktionen).
derBeginner
-
1. Eine Anwendung die mit der MFC geschrieben wird ob DLL oder EXE hat immer genau ein CWinApp (ein Singleton). Ausnahme Extension DLLs.
2. AfxGetApp gibt einen Zeiger zurück auf dieses Singleton. In diesem Singleton werden enige Bezüge verwaltet für die ganze Anwendung.
3. CWinApp erbt von CWinThread. CWinApp ist gleichzeitig der Contaoner für den ersten Thread der startet und InitInstance ausführt und am Ende ExitInstance
(Achtung das mit dem Thread gilt nicht für DLLs)
4. Mit AfxBeginThead startet man neue Threads und legt damit neue CWinThread Objekte an.
5. AfxGetThread liefert Dir das aktuelle CWinThread Objekt in dessen KOntext Du Dich gerade befindest.
6. Es gibt keine Hauptthreads in einer Anwendung! Höchstens einen ersten Thread.