AfxWinInit

Questa funzione viene chiamata dalla funzione MFC-fornita di WinMain , come parte dell'inizializzazione di CWinApp di un'applicazione basata su GUI, inizializzare MFC.

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

Parametri

  • hInstance
    Gli handle del modulo attualmente in esecuzione.

  • hPrevInstance
    Handle a un'istanza precedente dell'applicazione.Per un'applicazione basata su win32, questo parametro è sempre NULL.

  • lpCmdLine
    Punta a una stringa con terminazione null che specifica la riga di comando per l'applicazione.

  • nCmdShow
    Specifica come finestra principale di un'applicazione GUI sarebbe visualizzata.

Note

Per un'applicazione console, che non utilizza la funzione MFC-fornita di WinMain , è necessario chiamare direttamente AfxWinInit per inizializzare MFC.

Se si chiama AfxWinInit autonomamente, è necessario dichiarare un'istanza di una classe di CWinApp .Per un'applicazione console, è possibile non derivare la classe da CWinApp e invece di non utilizzare direttamente un'istanza di CWinApp .Questa tecnica è utile se si decide di mantenere tutta la funzionalità per l'applicazione nell'implementazione di main.

[!NOTA]

Quando si crea un contesto di attivazione di un assembly, MFC utilizzerà una risorsa di manifesto fornita dal form dell'utente.Il contesto di attivazione viene creato in AfxWinInit.Per ulteriori informazioni, vedere Supporto per i contesti di attivazione lo stato del modulo MFC.

Esempio

#include <afx.h>
#include <afxdb.h>

int _tmain(int /*argc*/, TCHAR* /*argv[]*/, TCHAR* /*envp[]*/)
{
   int nRetCode = 0;

   // initialize MFC and print and error on failure
   if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
   {
      // TODO: change error code to suit your needs
      _tprintf(_T("Fatal Error: MFC initialization failed\n"));
      nRetCode = 1;
   }
   else
   {
      // try to connect to an ODBC database that doesn't exist
      // (this wouldn't work at all without initializing MFC)

      CDatabase db;
      try
      {
         db.Open(_T("This Databsae Doesn't Exist"));

         // we shouldn't realistically get here

         _tprintf_s(_T("Successful!\n")
            _T("Closing ...\n"));
         db.Close();
         _tprintf_s(_T("Closed!"));
      }
      catch (CDBException* pEx)
      {
         // we got an exception! print an error message
         // (this wouldn't work without initializing MFC)

         TCHAR sz[1024];

         _tprintf_s(_T("Error: "));
         if (pEx->GetErrorMessage(sz, 1024))
            _tprintf_s(sz);
         else
            _tprintf_s(_T("No error message was available"));
         _tprintf_s(_T("\n"));

         pEx->Delete();

         nRetCode = 1;
      }
   }

   return nRetCode;
}

Requisiti

Header: afxwin.h

Vedere anche

Riferimenti

Classe CWinApp

principale: Avvio del programma

WinMain

Concetti

Macro MFC e Globals

Classe CWinApp: The Application