Partager via


AfxWinInit

Cette fonction est appelée par la fonction MFC-fournie d' WinMain , dans le cadre de l'initialisation de CWinApp d'une application Interface GUI-basée, initialiser MFC.

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

Paramètres

  • hInstance
    Le handle du module en cours de exécution.

  • hPrevInstance
    Un handle à une instance précédente de l'application.Pour une application win32, ce paramètre est toujours NULL.

  • lpCmdLine
    Pointe vers une chaîne terminée par le caractère NULL spécifiant la ligne de commande pour l'application.

  • nCmdShow
    Spécifie comment la fenêtre principale d'une application GUI serait affichée.

Notes

Pour une application console, qui n'utilise pas la fonction MFC-fournie d' WinMain , vous devez appeler AfxWinInit directement pour initialiser MFC.

Si vous appelez AfxWinInit vous-même, vous devez déclarer une instance d'une classe d' CWinApp .Pour une application console, vous pouvez choisir de ne pas dériver votre propre classe d' CWinApp et de ne pas utiliser à la place une instance d' CWinApp directement.Cette technique est appropriée si vous décidez de conserver toutes les fonctionnalités de votre application dans votre implémentation de main.

[!REMARQUE]

Lorsqu'il crée un contexte d'activation d'un assembly, MFC utilise une ressource de manifeste fournies par le module d'utilisateur.Le contexte d'activation est créé dans AfxWinInit.Pour plus d'informations, consultez Prise en charge des contextes d'activation dans l'état du module MFC.

Exemple

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

Configuration requise

Header: afxwin.h

Voir aussi

Référence

CWinApp, classe

main : démarrage du programme

WinMain

Concepts

Macro MFC et Globals

CWinApp: The Application, classe