Gestire i dati dello stato dei moduli MFC
Questo articolo vengono illustrati i dati relativi allo stato dei moduli MFC e come questo stato viene aggiornato quando il flusso di esecuzione (il codice del percorso accetta con un'applicazione quando esegue) entra o esce in un modulo.Gli stati del modulo di alternanza con le macro di METHOD_PROLOGUE e di AFX_MANAGE_STATE viene illustrato.
[!NOTA]
Il termine “modulo„ qui si riferisce a un programma eseguibile, o a una DLL (o al set di DLL) che funziona indipendentemente dal resto dell'applicazione, ma utilizza una copia condivisa di DLL MFC.Un controllo ActiveX è un esempio tipico di un modulo.
Come illustrato nella figura seguente, mfc dispone di dati sullo stato di ogni modulo utilizzato in un'applicazione.Esempi di questi dati includono un handle di windows (utilizzate per il caricamento delle risorse), puntatori a CWinApp e agli oggetti correnti di CWinThread di un'applicazione, conteggi dei riferimenti del modulo OLE e diversi mapping che gestiscono le connessioni tra l'handle dell'oggetto delle finestre e le istanze corrispondenti degli oggetti MFC.Tuttavia, quando un'applicazione utilizza più moduli, i dati sullo stato di ogni modulo non sono applicazione a.Piuttosto, ogni modulo ha una propria copia privata dei dati sullo stato di MFC.
Dati sullo stato di un modulo singolo (applicazione)
I dati relativi allo stato di un form sono contenuti in una struttura e sono sempre disponibili tramite un puntatore a tale struttura.Quando il flusso di esecuzione offre un modulo particolare, come illustrato nella figura che segue, in cui lo stato del modulo deve essere “l'oggetto corrente„ o “efficace„ scegliere.Di conseguenza, ogni oggetto del thread ha un puntatore a un efficace struttura di stato dell'applicazione.La conservazione di questo puntatore aggiornato sempre è un elemento essenziale per gestire lo stato complessivo dell'applicazione e di mantenere l'integrità dello stato di ogni modulo.L'errata gestione dello stato globale può produrre un comportamento di applicazione imprevedibile.
Dati sullo stato di più moduli
Ovvero ogni modulo è responsabile corretto di passare tra gli stati del modulo qualsiasi dei relativi punti di ingresso.“Un punto di ingresso„ è il punto in cui il flusso di esecuzione può digitare il codice del form.i punti di ingresso includono: