Udostępnij za pośrednictwem


AfxWinInit

Ta funkcja jest wywoływana przez dostarczone MFC WinMain funkcji, jako część CWinApp inicjowania aplikacji graficznego interfejsu użytkownika, aby zainicjować biblioteki MFC.

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

Parametry

  • hInstance
    Uchwyt module aktualnie uruchomione.

  • hPrevInstance
    Dojście do poprzedniego wystąpienia aplikacji.Dla aplikacji opartych na podsystemie Win32, ten parametr jest zawsze wartości NULL.

  • lpCmdLine
    Wskazuje ciąg zakończony zerem, określający wiersz polecenia dla aplikacji.

  • nCmdShow
    Określa, jak zostaną pokazane w głównym oknie aplikacji GUI.

Uwagi

Dla aplikacji konsoli, które nie wykorzystują dostarczone MFC WinMain funkcji, należy wywołać AfxWinInit bezpośrednio zainicjować klas MFC.

Jeśli zadzwonisz do AfxWinInit siebie, należy zadeklarować wystąpienie CWinApp klasy.Dla aplikacji konsoli, można wybrać nie czerpią własne klasy z CWinApp i zamiast tego użyć instancji CWinApp bezpośrednio.Ta technika jest odpowiednia, jeśli zdecydujesz się pozostawić wszystkie funkcje aplikacji w implementacji główne.

[!UWAGA]

Podczas tworzenia kontekstu aktywacji dla asemblowania, MFC używa zasobu manifestu modu³u użytkownika.Kontekst aktywacji jest tworzony w AfxWinInit.Aby uzyskać dodatkowe informacje, zobacz Obsługa kontekstów aktywacji w stanie modułu MFC.

Przykład

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

Wymagania

Nagłówek: afxwin.h

Zobacz też

Informacje

Klasa CWinApp

main: uruchamianie programu

WinMain

Koncepcje

Makra i funkcje globalne MFC

CWinApp: klasa aplikacji