Sdílet prostřednictvím


AfxWinInit

Tato funkce se nazývá podle dodaných MFC WinMain funkce jako součást CWinApp inicializace aplikace založená na GUI se inicializovat knihovnu MFC.

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

Parametry

  • hInstance
    Popisovač aktuálně spuštěn modul.

  • hPrevInstance
    Popisovač předchozí instance aplikace.Aplikace založená na systému Win32 tento parametr je vždy NULL.

  • lpCmdLine
    Body na řetězec zakončený hodnotou null určující příkazového řádku pro aplikaci.

  • nCmdShow
    Určuje, jak by hlavní okno aplikace GUI zobrazeny.

Poznámky

Aplikace konzoly, která nepoužívá MFC dodávané WinMain funkci, musíte zavolat AfxWinInit přímo se inicializovat knihovnu MFC.

Při volání AfxWinInit sami, by měla deklarovat instance CWinApp třídy.Aplikace konzoly, můžete zvolit není odvozena z vlastní třídy CWinApp a místo toho použít instanci CWinApp přímo.Tato technika je vhodná, pokud se rozhodnete ponechat všechny funkce aplikace implementace hlavní.

[!POZNÁMKA]

Při vytvoření aktivačního kontextu pro sestavení, MFC používá prostředku manifestu poskytované modul uživatele.Aktivační kontext je vytvořena v AfxWinInit.Další informace naleznete v tématu Podpora pro aktivační kontexty v modulu stavu MFC.

Příklad

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

Požadavky

Záhlaví: afxwin.h

Viz také

Referenční dokumentace

Třída CWinApp

hlavní: spuštění programu

WinMain

Koncepty

MFC makra a Globals

CWinApp: Třídu aplikace