Freigeben über


AfxWinInit

Diese Funktion wurde durch die MFC-angegebene WinMain-Funktion als Teil der CWinApp Initialisierung einer GUI-basierten Anwendung zu initialisieren, MFC aufgerufen.

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

Parameter

  • hInstance
    Das Handle des aktuell Verarbeitungsmoduls.

  • hPrevInstance
    Ein Handle für eine vorherige Instanz der Anwendung.Für eine Win32-based Anwendung ist dieser Parameter immer NULL.

  • lpCmdLine
    Zeigt auf eine auf NULL endende Zeichenfolge, die die Befehlszeile für die Anwendung angibt.

  • nCmdShow
    Gibt an, wie das Hauptfenster einer GUI-Anwendung angezeigt wird.

Hinweise

Bei einer Konsolenanwendung die nicht die MFC-angegebene WinMain-Funktion verwendet, müssen Sie AfxWinInit direkt aufrufen, um MFC zu initialisieren.

Wenn Sie AfxWinInit sich selbst aufrufen, müssen Sie eine Instanz einer CWinApp-Klasse deklarieren.Dazu könnten Sie eine Konsolenanwendung für eigene Klasse von CWinApp zu berechnen und stattdessen eine Instanz von CWinApp direkt verwenden.Diese Vorgehensweise empfiehlt sich, wenn Sie alle Funktionen für die Anwendung in der Implementierung von main zu lassen.

HinweisHinweis

Wenn ein Aktivierungskontext für eine Assembly erstellt, verwendet MFC eine Manifestressource, die vom Benutzer bereitgestellte Modul.Der Aktivierungskontext wird in AfxWinInit erstellt.Weitere Informationen finden Sie unter Unterstützung für Aktivierungs-Kontexte im MFC-Modulzustand.

Beispiel

#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;
}

Anforderungen

Header: afxwin.h

Siehe auch

Referenz

CWinApp-Klasse

Haupt-: Programm-Start

WinMain

Konzepte

MFC-Makros und -globale Werte

CWinApp: The Application-Klasse