Compartilhar via


AfxWinInit

Essa função é chamada pelo fornecidos pelo MFC WinMain função como parte do CWinApp inicialização de um aplicativo baseado em GUI, para inicializar o MFC.

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

Parâmetros

  • hInstance
    O identificador do módulo em execução no momento.

  • hPrevInstance
    Um identificador para uma instância anterior do aplicativo.Para um aplicativo baseado em Win32, este parâmetro é sempre Nulo.

  • lpCmdLine
    Aponta para uma cadeia terminada com nulo que especifica a linha de comando para o aplicativo.

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

Comentários

Para um aplicativo de console que não usa fornecidos pelo MFC WinMain função, você deve chamar AfxWinInit diretamente ao inicializar o MFC.

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

ObservaçãoObservação

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

principal: inicialização do programa

WinMain

Conceitos

Globais e Macros do MFC

CWinApp: A classe de aplicativo