Freigeben über


AfxWinInit

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

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

Parameter

  • hInstance
    Das Handle des aktuell Verarbeitungsmoduls.

  • hPrevInstance
    Ein Handle einer vorherigen Instanz der Anwendung. Für eine Win32-basierte Anwendung ist dieser Parameter immer NULL.

  • lpCmdLine
    Punkte zu einer auf NULL endende Zeichenfolge, die die Befehlszeile für die Anwendung angeben.

  • nCmdShow
    Gibt an, wie das Hauptfenster einer GUI-Anwendung angezeigt würden.

Hinweise

Eine Konsolenanwendung die nicht die WinMain MFC-angegebene Funktion verwendet, muss AfxWinInit direkt aufrufen, um MFC-Programm zu initialisieren.

Wenn Sie AfxWinInit sicher aufrufen, sollten Sie eine Instanz einer CWinApp-Klasse deklarieren. Eine Konsolenanwendung empfiehlt es sich, um eine eigene Klasse von CWinApp abgeleitet werden und eine Instanz von CWinApp stattdessen direkt zu verwenden. Diese Technik ist geeignet, wenn Sie festlegen, um alle Funktionen für die Anwendung in der Implementierung von main verwendet.

Hinweis

Wenn sie einen Aktivierungskontext für eine Assembly erstellt wird, verwendet MFC eine Manifestressource, die vom Benutzermodul bereitgestellt wird.Der Aktivierungskontext AfxWinInit wird erstellt.Weitere Informationen finden Sie unter Unterstützung für Aktivierungskontexte im MFC-Modulstatus.

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

main: Programmstart

WinMain

Konzepte

MFC-Makros, globale Funktionen und globale Variablen

CWinApp: Die Anwendungsklasse