AfxWinInit

AfxWinInit AFXAPI BOOL (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow )

Parametri

hInstance

L'handle del modulo attualmente in esecuzione.

hPrevInstance

Un handle a una precedente istanza della application.nbsp; Per un'applicazione basata su Win32, questo parametro è sempre &NULL.

lpCmdLine

Punta a una stringa con terminazione null specificando la riga di comando per l'applicazione.

nCmdShow

Specifica come vorrei essere visualizzata la finestra principale di un'applicazione GUI.

Osservazioni

Questa funzione viene chiamata dalla funzione fornita da MFC WinMain , come parte dell'inizializzazione di un'applicazione basata su GUI per inizializzare MFC CWinApp . Per un'applicazione console, che non utilizza la funzione fornita da MFC WinMain , è necessario chiamare AfxWinInit direttamente per inizializzare MFC.

Se si chiama AfxWinInit voi stessi, voi dovrebbe dichiarare un'istanza di una classe CWinApp . Per un'applicazione console, si potrebbe decidere di derivare una classe da CWinApp ed utilizzare direttamente un'istanza di CWinApp . Questa tecnica è appropriata se si decide di lasciare tutte le funzionalità dell'applicazione nell'implementazione del principale.

La TEAR esempio viene illustrato come creare un'applicazione console utilizzando MFC.

Esempio

/ / Questo file deve essere compilato con le opzioni /GX e /MT:
/ / cl /GX /MT thisfile.cpp

# include lt;afx.h >
# include <afxdb.h>
# include <iostream.h>

int main)
{
   / / try inizializzare MFC

if (!.AfxWinInit(::GetModuleHandle(NULL), NULL,:: GetCommandLine(), 0))
   {
      Cerr << "MFC Impossibile inizializzare!" << endl;
      restituire 1;
   }

/ / tenta di connettersi a un database ODBC che non esiste
   / / (questo non avrebbe funzionato a tutti senza inizializzare MFC)

Db CDatabase;
   provare
   {
      DB.Aperto ("questa Databsae non esiste");

/ / realisticamente non dovremmo arrivarci

cout << "Successo!" << endl;
      cout << "chiusura … ";
      DB.Close ();
      cout << "Chiuso" << endl;
   }
   catch (CDBException pEx)
   {
      / / abbiamo ottenuto un'eccezione! stampare un messaggio di errore
      / / (questo non avrebbe funzionato senza inizializzare MFC)

sz Char [1024];

cout << "errore:";
      Se (pEx - > GetErrorMessage (sz, 1024))
         cout << sz;
      altro
         cout << "alcun messaggio di errore è stato disponibile";
      cout << endl;

pEx - > Delete ();
      restituire 1;
   }

return 0;
}

Vedere a&nchenbsp;CWinApp, CWinApp: la classe Application, principale, WinMain

Index