Compartilhar via


AfxWinInit

Essa função é chamada pela função MFC- fornecida de WinMain , como parte de inicialização de CWinApp de um aplicativo baseado GUI-, inicializar o MFC.

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

Parâmetros

  • hInstance
    O identificador de módulo em execução.

  • hPrevInstance
    Um identificador para uma instância anterior do aplicativo. Para um aplicativo de Win32-based, esse parâmetro será sempre nulo.

  • lpCmdLine
    Aponta para uma cadeia de caracteres com terminação nula que especifica a linha de comando para o aplicativo.

  • nCmdShow
    Especifica como a janela principal de um aplicativo de GUI seria mostrada.

Comentários

Para um aplicativo de console, que não usa a função MFC- fornecida de WinMain , você deve chamar AfxWinInit diretamente para inicializar o MFC.

Se você chamar AfxWinInit você mesmo, você deve declarar uma instância de uma classe de CWinApp . Para um aplicativo de console, você pode escolher não derivar sua própria classe de CWinApp e não usar em vez de diretamente uma instância de CWinApp . Essa técnica apropriada se você decidir permitir que toda a funcionalidade do aplicativo em sua implementação de main.

Dica

Quando cria um contexto de ativação de um assembly, o MFC usa um recurso de manifesto fornecido pelo módulo do usuário.O contexto de ativação é criado em AfxWinInit.Para obter mais informações, consulte Suporte para contextos de ativação no estado do módulo MFC.

Exemplo

#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

Cabeçalho: afxwin.h

Consulte também

Referência

Classe de CWinApp

main: inicialização do programa

WinMain

Conceitos

Macros e globais MFC

CWinApp: a classe do aplicativo