Udostępnij za pośrednictwem


AfxWinInit

Ta funkcja jest wywoływana przez dostarczone MFC WinMain funkcji, jako część CWinApp inicjowania aplikacji opartej na graficznym interfejsie użytkownika, zainicjować klas MFC.

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

Parametry

  • hInstance
    Uchwyt modułu aktualnie uruchomione.

  • hPrevInstance
    Uchwyt do poprzedniej instancji aplikacji.W przypadku aplikacji z Win32 ten parametr jest zawsze NULL.

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

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

Uwagi

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

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

[!UWAGA]

Podczas tworzenia kontekstu aktywacji dla zestawu, MFC używa zasobu manifestu dostarczone przez moduł użytkownika.Kontekst aktywacji jest tworzony w AfxWinInit.Aby uzyskać więcej informacji, zobacz Obsługa kontekst 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

główne: uruchamianie programu

WinMain

Koncepcje

Makra MFC i Globals

CWinApp: Klasa aplikacji