Aracılığıyla paylaş


AfxWinInit

Bu işlev mfc tarafından sağlanan göre adlandırılır WinMain bir parçası olarak işlev CWinApp mfc başlatılamadı bir GUI tabanlı uygulama başlatma.

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

Parametreler

  • hInstance
    Şu anda çalışan modül işleci.

  • hPrevInstance
    Uygulamasının önceki bir örneği için tanıtıcı. Win 32 tabanlı bir uygulama için bu parametreyi her zaman olduğu null.

  • lpCmdLine
    Uygulama komut satırı belirleyen bir boşlukla sonlandırılmış dize işaret.

  • nCmdShow
    Nasıl bir GUI uygulamasının ana penceresinde gösterilen belirtir.

Notlar

Bir konsol uygulaması için hangi kullanmayan mfc sağlanan WinMain işlevini çağırmanız gerekir AfxWinInit doğrudan mfc başlatılamadı.

Çağırırsanız, AfxWinInit , kendiniz bir örneğini bildirmeniz gerekir bir CWinApp sınıfı. Bir konsol uygulaması için kendi sınıfından türeyen değil seçebilirsiniz CWinApp ve bunun yerine bir örneğini CWinApp doğrudan. Bu teknik uygulamanızda tüm işlevselliği uygulamanız için bırakmak karar verirseniz, uygun ana.

Not

Derleme için etkinleştirme içeriği oluşturduğunda mfc kullanıcı modülü tarafından sağlanan bir bildirim kaynağı kullanır.Etkinleştirme içeriği oluşturulur AfxWinInit.Daha fazla bilgi için bkz: mfc modülü durumunda etkinleştirme bağlamı için destek.

Örnek

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

Gereksinimler

Başlık: afxwin.h

Ayrıca bkz.

Başvuru

CWinApp sınıfı

Ana: Program başlatma

WinMain

Kavramlar

mfc makrolar ve Globals

CWinApp: Uygulama sınıfı