Compartir a través de


AfxWinInit

Esta función se llama por la función MFC-proporcionada de WinMain , como parte de la inicialización de CWinApp de una aplicación GUI-basada, para inicializar MFC.

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

Parámetros

  • hInstance
    El identificador de módulo actualmente en ejecución.

  • hPrevInstance
    Identificador de una instancia anterior de la aplicación.Para una aplicación de win32, este parámetro es siempre NULL.

  • lpCmdLine
    Señala una cadena terminada en null que especifica la línea de comandos para la aplicación.

  • nCmdShow
    Especifica cómo la ventana principal de una aplicación de GUI sería mostrada.

Comentarios

Para una aplicación de consola, que no utiliza la función MFC-proporcionada de WinMain , debe llamar a AfxWinInit directamente para inicializar MFC.

Si llama a AfxWinInit personalmente, debe declarar una instancia de una clase de CWinApp .Para una aplicación de consola, puede elegir no derivar su propia clase de CWinApp y en su lugar para no utilizar una instancia de CWinApp directamente.Esta técnica es adecuada si decide dejar toda la funcionalidad de su aplicación en su implementación de main.

[!NOTA]

Cuando crea un contexto de activación para un ensamblado, MFC utiliza un recurso manifiesto proporcionado por el módulo del usuario.El contexto de activación se crea en AfxWinInit.Para obtener más información, vea Compatibilidad con los contextos de Activación en el módulo MFC.

Ejemplo

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

Requisitos

Header: afxwin.h

Vea también

Referencia

CWinApp (Clase)

main: Inicio del programa

WinMain

Conceptos

Macros y funciones globales de MFC

CWinApp: The Application (Clase)